diff --git a/dmlproc/dmlprocessor.cpp b/dmlproc/dmlprocessor.cpp index bd0f87d61..34529212f 100644 --- a/dmlproc/dmlprocessor.cpp +++ b/dmlproc/dmlprocessor.cpp @@ -541,6 +541,25 @@ int PackageHandler::clearTableAccess() return 1; } +CalpontSystemCatalog::ROPair PackageHandler::getTableRID( + boost::shared_ptr fcsc, + execplan::CalpontSystemCatalog::TableName& tableName) +{ + execplan::CalpontSystemCatalog::ROPair roPair; + try + { + roPair = fcsc->tableRID(tableName); + } + catch (...) + { + if (setupDec()) + throw; + roPair = fcsc->tableRID(tableName); + } + + return roPair; +} + void PackageHandler::run() { ResourceManager* frm = ResourceManager::instance(); @@ -577,18 +596,7 @@ void PackageHandler::run() CalpontSystemCatalog::TableName tableName; tableName.schema = insertPkg.get_Table()->get_SchemaName(); tableName.table = insertPkg.get_Table()->get_TableName(); - CalpontSystemCatalog::ROPair roPair; - try - { - roPair = fcsc->tableRID(tableName); - } - catch (...) - { - if (setupDec()) - throw; - roPair = fcsc->tableRID(tableName); - } - + CalpontSystemCatalog::ROPair roPair = getTableRID(fcsc, tableName); fTableOid = roPair.objnum; } synchTable.setPackage(this, &insertPkg); // Blocks if another DML thread is using this fTableOid @@ -987,17 +995,7 @@ void PackageHandler::run() CalpontSystemCatalog::TableName tableName; tableName.schema = updatePkg->get_Table()->get_SchemaName(); tableName.table = updatePkg->get_Table()->get_TableName(); - CalpontSystemCatalog::ROPair roPair; - try - { - roPair = fcsc->tableRID(tableName); - } - catch (...) - { - if (setupDec()) - throw; - roPair = fcsc->tableRID(tableName); - } + CalpontSystemCatalog::ROPair roPair = getTableRID(fcsc, tableName); fTableOid = roPair.objnum; } synchTable.setPackage(this, @@ -1057,17 +1055,7 @@ void PackageHandler::run() CalpontSystemCatalog::TableName tableName; tableName.schema = deletePkg->get_Table()->get_SchemaName(); tableName.table = deletePkg->get_Table()->get_TableName(); - CalpontSystemCatalog::ROPair roPair; - try - { - roPair = fcsc->tableRID(tableName); - } - catch (...) - { - if (setupDec()) - throw; - roPair = fcsc->tableRID(tableName); - } + CalpontSystemCatalog::ROPair roPair = getTableRID(fcsc, tableName); fTableOid = roPair.objnum; } synchTable.setPackage(this, diff --git a/dmlproc/dmlprocessor.h b/dmlproc/dmlprocessor.h index 5d1c0dc0e..6f21d8d9a 100644 --- a/dmlproc/dmlprocessor.h +++ b/dmlproc/dmlprocessor.h @@ -205,6 +205,8 @@ class PackageHandler joblist::DistributedEngineComm* fEc = joblist::DistributedEngineComm::instance(rm); return fEc->Setup(); } + execplan::CalpontSystemCatalog::ROPair getTableRID(boost::shared_ptr fcsc, + execplan::CalpontSystemCatalog::TableName& tableName); messageqcpp::IOSocket fIos; boost::shared_ptr fByteStream;