mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-22 09:40:49 +00:00
clickhouse: sleep function not sleeping on empty blocks [#CONV-2807].
This commit is contained in:
parent
c58339984b
commit
078f598ea0
@ -409,30 +409,32 @@ public:
|
||||
{
|
||||
IColumn * col = &*block.getByPosition(arguments[0]).column;
|
||||
double seconds;
|
||||
size_t size;
|
||||
size_t size = col->size();
|
||||
|
||||
if (ColumnConst<Float64> * column = dynamic_cast<ColumnConst<Float64> *>(col))
|
||||
size = column->size(), seconds = column->getData();
|
||||
seconds = column->getData();
|
||||
|
||||
else if (ColumnConst<Float32> * column = dynamic_cast<ColumnConst<Float32> *>(col))
|
||||
size = column->size(), seconds = static_cast<double>(column->getData());
|
||||
seconds = static_cast<double>(column->getData());
|
||||
|
||||
else if (ColumnConst<UInt64> * column = dynamic_cast<ColumnConst<UInt64> *>(col))
|
||||
size = column->size(), seconds = static_cast<double>(column->getData());
|
||||
seconds = static_cast<double>(column->getData());
|
||||
|
||||
else if (ColumnConst<UInt32> * column = dynamic_cast<ColumnConst<UInt32> *>(col))
|
||||
size = column->size(), seconds = static_cast<double>(column->getData());
|
||||
seconds = static_cast<double>(column->getData());
|
||||
|
||||
else if (ColumnConst<UInt16> * column = dynamic_cast<ColumnConst<UInt16> *>(col))
|
||||
size = column->size(), seconds = static_cast<double>(column->getData());
|
||||
seconds = static_cast<double>(column->getData());
|
||||
|
||||
else if (ColumnConst<UInt8> * column = dynamic_cast<ColumnConst<UInt8> *>(col))
|
||||
size = column->size(), seconds = static_cast<double>(column->getData());
|
||||
seconds = static_cast<double>(column->getData());
|
||||
|
||||
else
|
||||
throw Exception("The argument of function " + getName() + " must be constant.", ErrorCodes::ILLEGAL_COLUMN);
|
||||
|
||||
usleep(static_cast<unsigned>(seconds * 1e6));
|
||||
/// Не спим, если блок пустой.
|
||||
if (size > 0)
|
||||
usleep(static_cast<unsigned>(seconds * 1e6));
|
||||
|
||||
block.getByPosition(result).column = ColumnConst<UInt8>(size, 0).convertToFullColumn();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user