mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-21 09:10:48 +00:00
dbms: Server: simplified code [#METR-19697]
This commit is contained in:
parent
3d9dc30e8c
commit
52b6eceb51
@ -288,8 +288,8 @@ class ArrayEvaluator final
|
||||
public:
|
||||
static void perform(const Branches & branches, Block & block, const ColumnNumbers & args, size_t result)
|
||||
{
|
||||
size_t row_count = getRowCount(block, args);
|
||||
const CondSources conds = createConds(block, args);
|
||||
size_t row_count = conds[0].getSize();
|
||||
IArraySources<TResult> sources = createSources(block, args, branches);
|
||||
ArraySink<TResult> sink = createSink(block, sources, result, row_count);
|
||||
|
||||
@ -384,16 +384,6 @@ private:
|
||||
return ArraySink<TResult>{col_res_vec->getData(), col_res_array->getOffsets(),
|
||||
data_size, offsets_size};
|
||||
}
|
||||
|
||||
static size_t getRowCount(const Block & block, const ColumnNumbers & args)
|
||||
{
|
||||
const IColumn * col = &*block.getByPosition(args[0]).column;
|
||||
const auto * cond_col = typeid_cast<const ColumnVector<UInt8> *>(col);
|
||||
if (cond_col == nullptr)
|
||||
throw Exception{"Internal error", ErrorCodes::LOGICAL_ERROR};
|
||||
const PaddedPODArray<UInt8> & cond_data = cond_col->getData();
|
||||
return cond_data.size();
|
||||
}
|
||||
};
|
||||
|
||||
/// Processing of multiIf in the case of an invalid return type.
|
||||
|
@ -28,6 +28,11 @@ public:
|
||||
return data_array[row];
|
||||
}
|
||||
|
||||
inline UInt8 getSize() const
|
||||
{
|
||||
return data_array.size();
|
||||
}
|
||||
|
||||
private:
|
||||
static const ColumnPtr initMaterializedCol(const Block & block, const ColumnNumbers & args, size_t i);
|
||||
|
||||
|
@ -137,7 +137,7 @@ public:
|
||||
{
|
||||
const CondSources conds = createConds(block, args);
|
||||
const NumericSources<TResult> sources = createNumericSources(block, args, branches);
|
||||
size_t row_count = getRowCount(block, args);
|
||||
size_t row_count = conds[0].getSize();
|
||||
PaddedPODArray<TResult> & res = createSink(block, result, row_count);
|
||||
|
||||
for (size_t cur_row = 0; cur_row < row_count; ++cur_row)
|
||||
@ -209,16 +209,6 @@ private:
|
||||
|
||||
return sources;
|
||||
}
|
||||
|
||||
static size_t getRowCount(const Block & block, const ColumnNumbers & args)
|
||||
{
|
||||
const IColumn * col = &*block.getByPosition(args[0]).column;
|
||||
const auto * cond_col = typeid_cast<const ColumnVector<UInt8> *>(col);
|
||||
if (cond_col == nullptr)
|
||||
throw Exception{"Internal error", ErrorCodes::LOGICAL_ERROR};
|
||||
const PaddedPODArray<UInt8> & cond_data = cond_col->getData();
|
||||
return cond_data.size();
|
||||
}
|
||||
};
|
||||
|
||||
/// Processing of multiIf in the case of an invalid return type.
|
||||
|
@ -366,16 +366,6 @@ VarStringArraySink createSink(Block & block, const StringArraySources & sources,
|
||||
var_col_res->getOffsets(), data_size, offsets_size, row_count};
|
||||
}
|
||||
|
||||
size_t getRowCount(const Block & block, const ColumnNumbers & args)
|
||||
{
|
||||
const IColumn * col = &*block.getByPosition(args[0]).column;
|
||||
const auto * cond_col = typeid_cast<const ColumnVector<UInt8> *>(col);
|
||||
if (cond_col == nullptr)
|
||||
throw Exception{"Internal error", ErrorCodes::LOGICAL_ERROR};
|
||||
const PaddedPODArray<UInt8> & cond_data = cond_col->getData();
|
||||
return cond_data.size();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// Process a multiIf.
|
||||
@ -385,8 +375,8 @@ bool StringArrayEvaluator::perform(Block & block, const ColumnNumbers & args, si
|
||||
if (!createStringArraySources(sources, block, args))
|
||||
return false;
|
||||
|
||||
size_t row_count = getRowCount(block, args);
|
||||
const CondSources conds = createConds(block, args);
|
||||
size_t row_count = conds[0].getSize();
|
||||
VarStringArraySink sink = createSink(block, sources, result, row_count);
|
||||
|
||||
for (size_t cur_row = 0; cur_row < row_count; ++cur_row)
|
||||
|
@ -385,16 +385,6 @@ size_t computeResultSize(const StringSources & sources, size_t row_count)
|
||||
throw Exception{"Internal error", ErrorCodes::LOGICAL_ERROR};
|
||||
}
|
||||
|
||||
size_t getRowCount(const Block & block, const ColumnNumbers & args)
|
||||
{
|
||||
const IColumn * col = &*block.getByPosition(args[0]).column;
|
||||
const auto * cond_col = typeid_cast<const ColumnVector<UInt8> *>(col);
|
||||
if (cond_col == nullptr)
|
||||
throw Exception{"Internal error", ErrorCodes::LOGICAL_ERROR};
|
||||
const PaddedPODArray<UInt8> & cond_data = cond_col->getData();
|
||||
return cond_data.size();
|
||||
}
|
||||
|
||||
/// Updates a fixed or variable string sink.
|
||||
template <typename SinkType>
|
||||
class SinkUpdater
|
||||
@ -500,8 +490,8 @@ bool StringEvaluator::perform(Block & block, const ColumnNumbers & args, size_t
|
||||
if (!createStringSources(sources, block, args))
|
||||
return false;
|
||||
|
||||
size_t row_count = getRowCount(block, args);
|
||||
const CondSources conds = createConds(block, args);
|
||||
size_t row_count = conds[0].getSize();
|
||||
|
||||
bool has_only_fixed_sources = true;
|
||||
for (const auto & source : sources)
|
||||
|
Loading…
Reference in New Issue
Block a user