ISSUES-4006 fix buidl failure

This commit is contained in:
zhang2014 2020-06-19 20:50:52 +08:00
parent 59465b58c2
commit 0f75b2d0f0

View File

@ -56,7 +56,7 @@ void EventConsumer::onWriteData(const String & table_name, const std::vector<Fie
size_t prev_bytes = buffer->data.bytes(); size_t prev_bytes = buffer->data.bytes();
for (size_t column = 0; column < buffer->data.columns() - 2; ++column) for (size_t column = 0; column < buffer->data.columns() - 2; ++column)
{ {
MutableColumnPtr col_to = (*std::move(buffer->data.getByPosition(column).column)).mutate(); MutableColumnPtr col_to = IColumn::mutate(std::move(buffer->data.getByPosition(column).column));
for (size_t index = 0; index < rows_data.size(); ++index) for (size_t index = 0; index < rows_data.size(); ++index)
col_to->insert(DB::get<const Tuple &>(rows_data[index])[column]); col_to->insert(DB::get<const Tuple &>(rows_data[index])[column]);
@ -90,7 +90,7 @@ void EventConsumer::onUpdateData(const String & table_name, const std::vector<Fi
for (size_t column = 0; column < buffer->data.columns() - 2; ++column) for (size_t column = 0; column < buffer->data.columns() - 2; ++column)
{ {
MutableColumnPtr col_to = (*std::move(buffer->data.getByPosition(column).column)).mutate(); MutableColumnPtr col_to = IColumn::mutate(std::move(buffer->data.getByPosition(column).column));
for (size_t index = 0; index < rows_data.size(); index += 2) for (size_t index = 0; index < rows_data.size(); index += 2)
{ {
@ -105,8 +105,8 @@ void EventConsumer::onUpdateData(const String & table_name, const std::vector<Fi
} }
} }
MutableColumnPtr sign_mutable_column = (*std::move(buffer->data.getByPosition(buffer->data.columns() - 2)).column).mutate(); MutableColumnPtr sign_mutable_column = IColumn::mutate(std::move(buffer->data.getByPosition(buffer->data.columns() - 2).column));
MutableColumnPtr version_mutable_column = (*std::move(buffer->data.getByPosition(buffer->data.columns() - 1)).column).mutate(); MutableColumnPtr version_mutable_column = IColumn::mutate(std::move(buffer->data.getByPosition(buffer->data.columns() - 1).column));
ColumnInt8::Container & sign_column_data = assert_cast<ColumnInt8 &>(*sign_mutable_column).getData(); ColumnInt8::Container & sign_column_data = assert_cast<ColumnInt8 &>(*sign_mutable_column).getData();
ColumnUInt64::Container & version_column_data = assert_cast<ColumnUInt64 &>(*version_mutable_column).getData(); ColumnUInt64::Container & version_column_data = assert_cast<ColumnUInt64 &>(*version_mutable_column).getData();
@ -141,7 +141,7 @@ void EventConsumer::onDeleteData(const String & table_name, const std::vector<Fi
size_t prev_bytes = buffer->data.bytes(); size_t prev_bytes = buffer->data.bytes();
for (size_t column = 0; column < buffer->data.columns() - 2; ++column) for (size_t column = 0; column < buffer->data.columns() - 2; ++column)
{ {
MutableColumnPtr col_to = (*std::move(buffer->data.getByPosition(column).column)).mutate(); MutableColumnPtr col_to = IColumn::mutate(std::move(buffer->data.getByPosition(column).column));
for (size_t index = 0; index < rows_data.size(); ++index) for (size_t index = 0; index < rows_data.size(); ++index)
col_to->insert(DB::get<const Tuple &>(rows_data[index])[column]); col_to->insert(DB::get<const Tuple &>(rows_data[index])[column]);
@ -154,7 +154,7 @@ EventConsumer::BufferPtr EventConsumer::getTableBuffer(const String & table_name
{ {
if (buffers.find(table_name) == buffers.end()) if (buffers.find(table_name) == buffers.end())
{ {
StoragePtr storage = DatabaseCatalog::instance().getDatabase(database)->tryGetTable(table_name); StoragePtr storage = DatabaseCatalog::instance().getDatabase(database)->tryGetTable(table_name, context);
buffers[table_name] = std::make_shared<Buffer>(); buffers[table_name] = std::make_shared<Buffer>();
buffers[table_name]->data = storage->getSampleBlockNonMaterialized(); buffers[table_name]->data = storage->getSampleBlockNonMaterialized();
@ -207,8 +207,8 @@ void EventConsumer::onEvent(const BinlogEventPtr & receive_event, const MySQLRep
void EventConsumer::fillSignColumnsAndMayFlush(Block & data, Int8 sign_value, UInt64 version_value, size_t fill_size, size_t prev_bytes) void EventConsumer::fillSignColumnsAndMayFlush(Block & data, Int8 sign_value, UInt64 version_value, size_t fill_size, size_t prev_bytes)
{ {
MutableColumnPtr sign_mutable_column = (*std::move(data.getByPosition(data.columns() - 2)).column).mutate(); MutableColumnPtr sign_mutable_column = IColumn::mutate(std::move(data.getByPosition(data.columns() - 2).column));
MutableColumnPtr version_mutable_column = (*std::move(data.getByPosition(data.columns() - 1)).column).mutate(); MutableColumnPtr version_mutable_column = IColumn::mutate(std::move(data.getByPosition(data.columns() - 1).column));
ColumnInt8::Container & sign_column_data = assert_cast<ColumnInt8 &>(*sign_mutable_column).getData(); ColumnInt8::Container & sign_column_data = assert_cast<ColumnInt8 &>(*sign_mutable_column).getData();
ColumnUInt64::Container & version_column_data = assert_cast<ColumnUInt64 &>(*version_mutable_column).getData(); ColumnUInt64::Container & version_column_data = assert_cast<ColumnUInt64 &>(*version_mutable_column).getData();