mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-19 14:11:58 +00:00
one more fix for bad merge of branches
This commit is contained in:
parent
9aae1d0d8f
commit
9d3325f56e
@ -19,6 +19,7 @@ namespace ErrorCodes
|
|||||||
extern const int TOO_LARGE_STRING_SIZE;
|
extern const int TOO_LARGE_STRING_SIZE;
|
||||||
extern const int CANNOT_READ_ALL_DATA;
|
extern const int CANNOT_READ_ALL_DATA;
|
||||||
extern const int INCORRECT_DATA;
|
extern const int INCORRECT_DATA;
|
||||||
|
extern const int INCORRECT_NUMBER_OF_COLUMNS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -52,6 +53,7 @@ Block BlockInputStreamFromRowInputStream::readImpl()
|
|||||||
{
|
{
|
||||||
size_t num_columns = sample.columns();
|
size_t num_columns = sample.columns();
|
||||||
MutableColumns columns = sample.cloneEmptyColumns();
|
MutableColumns columns = sample.cloneEmptyColumns();
|
||||||
|
BlockDelayedDefaults delayed_defaults;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -60,8 +62,19 @@ Block BlockInputStreamFromRowInputStream::readImpl()
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
++total_rows;
|
++total_rows;
|
||||||
if (!row_input->read(columns))
|
RowReadExtention info;
|
||||||
|
if (!row_input->extendedRead(columns, info))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
for (size_t column_idx = 0; column_idx < info.read_columns.size(); ++column_idx)
|
||||||
|
{
|
||||||
|
if (!info.read_columns[column_idx]) {
|
||||||
|
size_t column_size = columns[column_idx]->size();
|
||||||
|
if (column_size == 0)
|
||||||
|
throw Exception("Unexpected empty column", ErrorCodes::INCORRECT_NUMBER_OF_COLUMNS);
|
||||||
|
delayed_defaults.setBit(column_idx, column_size - 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (Exception & e)
|
catch (Exception & e)
|
||||||
{
|
{
|
||||||
@ -130,7 +143,10 @@ Block BlockInputStreamFromRowInputStream::readImpl()
|
|||||||
if (columns.empty() || columns[0]->empty())
|
if (columns.empty() || columns[0]->empty())
|
||||||
return {};
|
return {};
|
||||||
|
|
||||||
return sample.cloneWithColumns(std::move(columns));
|
auto out_block = sample.cloneWithColumns(std::move(columns));
|
||||||
|
if (!delayed_defaults.empty())
|
||||||
|
out_block.delayed_defaults = std::move(delayed_defaults);
|
||||||
|
return out_block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user