MCPcopy Create free account
hub / github.com/ByConity/ByConity / getTableDataBuffer

Method getTableDataBuffer

src/Databases/MySQL/MaterializeMySQLSyncThread.cpp:821–844  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

819}
820
821MaterializeMySQLSyncThread::Buffers::BufferAndUniqueColumnsPtr MaterializeMySQLSyncThread::Buffers::getTableDataBuffer(
822 const String & table_name, ContextPtr context)
823{
824 const auto & iterator = data.find(table_name);
825 if (iterator == data.end())
826 {
827 StoragePtr storage = DatabaseCatalog::instance().getTable(StorageID(database, table_name + "_" + table_suffix), context);
828
829 const StorageInMemoryMetadata & metadata = storage->getInMemoryMetadata();
830 BufferAndUniqueColumnsPtr & buffer_and_unique_columns = data.try_emplace(
831 table_name, std::make_shared<BufferAndUniqueColumns>(metadata.getSampleBlockWithDeleteFlag(), std::vector<size_t>{})).first->second;
832
833 /// We need to use unique key instead of sorting key as user could use table override func
834 Names required_for_unique_key = metadata.getColumnsRequiredForUniqueKey();
835
836 for (const auto & required_name_for_unique_key : required_for_unique_key)
837 buffer_and_unique_columns->second.emplace_back(
838 buffer_and_unique_columns->first.getPositionByName(required_name_for_unique_key));
839
840 return buffer_and_unique_columns;
841 }
842
843 return iterator->second;
844}
845
846String MaterializeMySQLSyncThread::Buffers::printBuffersInfo()
847{

Callers 1

onEventMethod · 0.80

Calls 9

getInMemoryMetadataMethod · 0.80
StorageIDClass · 0.50
findMethod · 0.45
endMethod · 0.45
getTableMethod · 0.45
emplace_backMethod · 0.45
getPositionByNameMethod · 0.45

Tested by

no test coverage detected