OmniSciDB
a5dc49c757
|
#include <InsertDataLoader.h>
Classes | |
class | InsertConnector |
Public Member Functions | |
InsertDataLoader (InsertConnector &connector) | |
void | insertData (const Catalog_Namespace::SessionInfo &session_info, InsertData &insert_data) |
void | insertChunks (const Catalog_Namespace::SessionInfo &session_info, const InsertChunks &insert_chunks) |
size_t | getLeafCount () const |
Private Member Functions | |
size_t | moveToNextLeaf () |
Private Attributes | |
size_t | leaf_count_ |
size_t | current_leaf_index_ |
InsertConnector & | connector_ |
std::shared_mutex | current_leaf_index_mutex_ |
Definition at line 25 of file InsertDataLoader.h.
|
inline |
Definition at line 46 of file InsertDataLoader.h.
|
inline |
Definition at line 57 of file InsertDataLoader.h.
References leaf_count_.
Referenced by RelAlgExecutor::executeSimpleInsert().
void Fragmenter_Namespace::InsertDataLoader::insertChunks | ( | const Catalog_Namespace::SessionInfo & | session_info, |
const InsertChunks & | insert_chunks | ||
) |
Definition at line 418 of file InsertDataLoader.cpp.
References threading_serial::async(), cat(), CHECK, Fragmenter_Namespace::compute_row_indices_of_shards(), connector_, Fragmenter_Namespace::copy_data_of_shard(), Catalog_Namespace::SessionInfo::getCatalog(), Fragmenter_Namespace::InsertDataLoader::InsertConnector::insertChunksToLeaf(), Fragmenter_Namespace::InsertDataLoader::InsertConnector::leafCount(), moveToNextLeaf(), and Fragmenter_Namespace::InsertChunks::table_id.
Referenced by anonymous_namespace{ForeignDataImporter.cpp}::load_foreign_data_buffers().
void Fragmenter_Namespace::InsertDataLoader::insertData | ( | const Catalog_Namespace::SessionInfo & | session_info, |
InsertData & | insert_data | ||
) |
Definition at line 462 of file InsertDataLoader.cpp.
References threading_serial::async(), cat(), CHECK, Fragmenter_Namespace::computeRowIndicesOfShards(), connector_, Fragmenter_Namespace::copyDataOfShard(), Catalog_Namespace::SessionInfo::getCatalog(), Fragmenter_Namespace::InsertDataLoader::InsertConnector::insertDataToLeaf(), Fragmenter_Namespace::InsertDataLoader::InsertConnector::leafCount(), moveToNextLeaf(), Fragmenter_Namespace::InsertData::numRows, and Fragmenter_Namespace::InsertData::tableId.
Referenced by RelAlgExecutor::executeSimpleInsert(), and Parser::InsertIntoTableAsSelectStmt::populateData().
|
private |
Move to the next available leaf index internally. Done under a lock to prevent contention.
Definition at line 408 of file InsertDataLoader.cpp.
References current_leaf_index_, current_leaf_index_mutex_, and leaf_count_.
Referenced by insertChunks(), and insertData().
|
private |
Definition at line 70 of file InsertDataLoader.h.
Referenced by insertChunks(), and insertData().
|
private |
Definition at line 69 of file InsertDataLoader.h.
Referenced by moveToNextLeaf().
|
private |
Definition at line 71 of file InsertDataLoader.h.
Referenced by moveToNextLeaf().
|
private |
Definition at line 68 of file InsertDataLoader.h.
Referenced by getLeafCount(), and moveToNextLeaf().