Rename block to columns.

This commit is contained in:
Nikolai Kochetov 2020-10-14 17:44:22 +03:00
parent 1f49d83622
commit e2f826c22d

View File

@ -287,7 +287,7 @@ private:
template <typename T> template <typename T>
bool executeGeneric( bool executeGeneric(
ColumnsWithTypeAndName & columns, const IColumn * start_col, const IColumn * end_col, const IColumn * step_col, ColumnsWithTypeAndName & block, const IColumn * start_col, const IColumn * end_col, const IColumn * step_col,
const size_t input_rows_count, const size_t result) const const size_t input_rows_count, const size_t result) const
{ {
auto start_column = checkAndGetColumn<ColumnVector<T>>(start_col); auto start_column = checkAndGetColumn<ColumnVector<T>>(start_col);
@ -347,7 +347,7 @@ private:
out_offsets[row_idx] = offset; out_offsets[row_idx] = offset;
} }
columns[result].column = ColumnArray::create(std::move(data_col), std::move(offsets_col)); block[result].column = ColumnArray::create(std::move(data_col), std::move(offsets_col));
return true; return true;
} }
@ -367,7 +367,7 @@ private:
} }
Columns columns_holder(3); Columns columns_holder(3);
ColumnRawPtrs columns(3); ColumnRawPtrs column_ptrs(3);
const auto return_type = checkAndGetDataType<DataTypeArray>(columns[result].type.get())->getNestedType(); const auto return_type = checkAndGetDataType<DataTypeArray>(columns[result].type.get())->getNestedType();
@ -378,58 +378,58 @@ private:
else else
columns_holder[i] = castColumn(columns[arguments[i]], return_type); columns_holder[i] = castColumn(columns[arguments[i]], return_type);
columns[i] = columns_holder[i].get(); column_ptrs[i] = columns_holder[i].get();
} }
// for step column, defaults to 1 // for step column, defaults to 1
if (arguments.size() == 2) if (arguments.size() == 2)
{ {
columns_holder[2] = return_type->createColumnConst(input_rows_count, 1); columns_holder[2] = return_type->createColumnConst(input_rows_count, 1);
columns[2] = columns_holder[2].get(); column_ptrs[2] = columns_holder[2].get();
} }
bool is_start_const = isColumnConst(*columns[0]); bool is_start_const = isColumnConst(*column_ptrs[0]);
bool is_step_const = isColumnConst(*columns[2]); bool is_step_const = isColumnConst(*column_ptrs[2]);
bool ok; bool ok;
if (is_start_const && is_step_const) if (is_start_const && is_step_const)
{ {
UInt64 start = assert_cast<const ColumnConst &>(*columns[0]).getUInt(0); UInt64 start = assert_cast<const ColumnConst &>(*column_ptrs[0]).getUInt(0);
UInt64 step = assert_cast<const ColumnConst &>(*columns[2]).getUInt(0); UInt64 step = assert_cast<const ColumnConst &>(*column_ptrs[2]).getUInt(0);
ok = executeConstStartStep<UInt8>(columns, columns[1], start, step, input_rows_count, result) || ok = executeConstStartStep<UInt8>(columns, column_ptrs[1], start, step, input_rows_count, result) ||
executeConstStartStep<UInt16>(columns, columns[1], start, step, input_rows_count, result) || executeConstStartStep<UInt16>(columns, column_ptrs[1], start, step, input_rows_count, result) ||
executeConstStartStep<UInt32>(columns, columns[1], start, step, input_rows_count, result) || executeConstStartStep<UInt32>(columns, column_ptrs[1], start, step, input_rows_count, result) ||
executeConstStartStep<UInt64>(columns, columns[1], start, step, input_rows_count, result); executeConstStartStep<UInt64>(columns, column_ptrs[1], start, step, input_rows_count, result);
} }
else if (is_start_const && !is_step_const) else if (is_start_const && !is_step_const)
{ {
UInt64 start = assert_cast<const ColumnConst &>(*columns[0]).getUInt(0); UInt64 start = assert_cast<const ColumnConst &>(*column_ptrs[0]).getUInt(0);
ok = executeConstStart<UInt8>(columns, columns[1], columns[2], start, input_rows_count, result) || ok = executeConstStart<UInt8>(columns, column_ptrs[1], column_ptrs[2], start, input_rows_count, result) ||
executeConstStart<UInt16>(columns, columns[1], columns[2], start, input_rows_count, result) || executeConstStart<UInt16>(columns, column_ptrs[1], column_ptrs[2], start, input_rows_count, result) ||
executeConstStart<UInt32>(columns, columns[1], columns[2], start, input_rows_count, result) || executeConstStart<UInt32>(columns, column_ptrs[1], column_ptrs[2], start, input_rows_count, result) ||
executeConstStart<UInt64>(columns, columns[1], columns[2], start, input_rows_count, result); executeConstStart<UInt64>(columns, column_ptrs[1], column_ptrs[2], start, input_rows_count, result);
} }
else if (!is_start_const && is_step_const) else if (!is_start_const && is_step_const)
{ {
UInt64 step = assert_cast<const ColumnConst &>(*columns[2]).getUInt(0); UInt64 step = assert_cast<const ColumnConst &>(*column_ptrs[2]).getUInt(0);
ok = executeConstStep<UInt8>(columns, columns[0], columns[1], step, input_rows_count, result) || ok = executeConstStep<UInt8>(columns, column_ptrs[0], column_ptrs[1], step, input_rows_count, result) ||
executeConstStep<UInt16>(columns, columns[0], columns[1], step, input_rows_count, result) || executeConstStep<UInt16>(columns, column_ptrs[0], column_ptrs[1], step, input_rows_count, result) ||
executeConstStep<UInt32>(columns, columns[0], columns[1], step, input_rows_count, result) || executeConstStep<UInt32>(columns, column_ptrs[0], column_ptrs[1], step, input_rows_count, result) ||
executeConstStep<UInt64>(columns, columns[0], columns[1], step, input_rows_count, result); executeConstStep<UInt64>(columns, column_ptrs[0], column_ptrs[1], step, input_rows_count, result);
} }
else else
{ {
ok = executeGeneric<UInt8>(columns, columns[0], columns[1], columns[2], input_rows_count, result) || ok = executeGeneric<UInt8>(columns, column_ptrs[0], column_ptrs[1], column_ptrs[2], input_rows_count, result) ||
executeGeneric<UInt16>(columns, columns[0], columns[1], columns[2], input_rows_count, result) || executeGeneric<UInt16>(columns, column_ptrs[0], column_ptrs[1], column_ptrs[2], input_rows_count, result) ||
executeGeneric<UInt32>(columns, columns[0], columns[1], columns[2], input_rows_count, result) || executeGeneric<UInt32>(columns, column_ptrs[0], column_ptrs[1], column_ptrs[2], input_rows_count, result) ||
executeGeneric<UInt64>(columns, columns[0], columns[1], columns[2], input_rows_count, result); executeGeneric<UInt64>(columns, column_ptrs[0], column_ptrs[1], column_ptrs[2], input_rows_count, result);
} }
if (!ok) if (!ok)
{ {
throw Exception{"Illegal columns " + columns[0]->getName() + " of argument of function " + getName(), ErrorCodes::ILLEGAL_COLUMN}; throw Exception{"Illegal columns " + column_ptrs[0]->getName() + " of argument of function " + getName(), ErrorCodes::ILLEGAL_COLUMN};
} }
} }