dbaccess/source/core/api/KeySet.cxx | 32 ++++++++++++++--------------- dbaccess/source/core/api/KeySet.hxx | 7 +++++- dbaccess/source/core/api/OptimisticSet.cxx | 2 - 3 files changed, 23 insertions(+), 18 deletions(-)
New commits: commit 76c6436faa5e87132cc13be42ac4510baf1c9f8a Author: Noel Grandin <[email protected]> AuthorDate: Thu Sep 12 19:38:11 2024 +0200 Commit: Noel Grandin <[email protected]> CommitDate: Fri Sep 13 08:18:58 2024 +0200 convert OKeySetValue to a struct for better readability Change-Id: I9750668a31740bb1de0b6f024912d5cc73f7e766 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173279 Tested-by: Jenkins Reviewed-by: Noel Grandin <[email protected]> diff --git a/dbaccess/source/core/api/KeySet.cxx b/dbaccess/source/core/api/KeySet.cxx index 9366c990c87e..511338e30d9b 100644 --- a/dbaccess/source/core/api/KeySet.cxx +++ b/dbaccess/source/core/api/KeySet.cxx @@ -245,7 +245,7 @@ void OKeySet::setOneKeyColumnParameter( sal_Int32 &nPos, const Reference< XParam OUStringBuffer OKeySet::createKeyFilter() { - connectivity::ORowVector< ORowSetValue >::Vector::const_iterator aIter = m_aKeyIter->second.first->begin(); + connectivity::ORowVector< ORowSetValue >::Vector::const_iterator aIter = m_aKeyIter->second.m_aRowSetRow->begin(); static const char aAnd[] = " AND "; const OUString aQuote = getIdentifierQuoteString(); @@ -311,7 +311,7 @@ void OKeySet::construct(const Reference< XResultSet>& _xDriverSet, const OUStrin // the first row is empty because it's now easier for us to distinguish when we are beforefirst or first // without extra variable to be set - OKeySetValue keySetValue(nullptr,std::pair<sal_Int32,Reference<XRow> >(0,Reference<XRow>())); + OKeySetValue keySetValue{nullptr,0,Reference<XRow>()}; m_aKeyMap.emplace(0, keySetValue); m_aKeyIter = m_aKeyMap.begin(); } @@ -321,7 +321,7 @@ void OKeySet::reset(const Reference< XResultSet>& _xDriverSet) OCacheSet::construct(_xDriverSet, m_sRowSetFilter); m_bRowCountFinal = false; m_aKeyMap.clear(); - OKeySetValue keySetValue(nullptr,std::pair<sal_Int32,Reference<XRow> >(0,Reference<XRow>())); + OKeySetValue keySetValue{nullptr,0,Reference<XRow>()}; m_aKeyMap.emplace(0,keySetValue); m_aKeyIter = m_aKeyMap.begin(); } @@ -331,8 +331,8 @@ void OKeySet::ensureStatement( ) // do we already have a statement for the current combination of NULLness // of key & foreign columns? std::vector<bool> FilterColumnsNULL; - FilterColumnsNULL.reserve(m_aKeyIter->second.first->size()); - for (auto const& elem : *m_aKeyIter->second.first) + FilterColumnsNULL.reserve(m_aKeyIter->second.m_aRowSetRow->size()); + for (auto const& elem : *m_aKeyIter->second.m_aRowSetRow) FilterColumnsNULL.push_back(elem.isNull()); vStatements_t::const_iterator pNewStatement(m_vStatements.find(FilterColumnsNULL)); if(pNewStatement == m_vStatements.end()) @@ -575,9 +575,9 @@ void OKeySet::executeUpdate(const ORowSetRow& _rInsertRow ,const ORowSetRow& _rO const sal_Int32 nBookmark = ::comphelper::getINT32((*_rInsertRow)[0].getAny()); m_aKeyIter = m_aKeyMap.find(nBookmark); assert(m_aKeyIter != m_aKeyMap.end()); - m_aKeyIter->second.second.first = 2; - m_aKeyIter->second.second.second.clear(); - copyRowValue(_rInsertRow,m_aKeyIter->second.first,nBookmark); + m_aKeyIter->second.m_nUpdateInsert = 2; + m_aKeyIter->second.m_xRow.clear(); + copyRowValue(_rInsertRow, m_aKeyIter->second.m_aRowSetRow, nBookmark); tryRefetch(_rInsertRow,bRefetch); } } @@ -752,7 +752,7 @@ void OKeySet::executeInsert( const ORowSetRow& _rInsertRow,const OUString& i_sSQ ORowSetRow aKeyRow = new connectivity::ORowVector< ORowSetValue >(m_pKeyColumnNames->size()); copyRowValue(_rInsertRow,aKeyRow,aKeyIter->first + 1); - m_aKeyIter = m_aKeyMap.emplace( aKeyIter->first + 1, OKeySetValue(aKeyRow,std::pair<sal_Int32,Reference<XRow> >(1,Reference<XRow>())) ).first; + m_aKeyIter = m_aKeyMap.emplace( aKeyIter->first + 1, OKeySetValue{aKeyRow,1,Reference<XRow>()} ).first; // now we set the bookmark for this row (*_rInsertRow)[0] = Any(static_cast<sal_Int32>(m_aKeyIter->first)); tryRefetch(_rInsertRow,bRefetch); @@ -774,7 +774,7 @@ void OKeySet::tryRefetch(const ORowSetRow& _rInsertRow,bool bRefetch) } if ( !bRefetch ) { - m_aKeyIter->second.second.second = new OPrivateRow(std::vector(*_rInsertRow)); + m_aKeyIter->second.m_xRow = new OPrivateRow(std::vector(*_rInsertRow)); } } @@ -1102,7 +1102,7 @@ bool OKeySet::doTryRefetch_throw() } // now set the primary key column values - connectivity::ORowVector< ORowSetValue >::Vector::const_iterator aIter = m_aKeyIter->second.first->begin(); + connectivity::ORowVector< ORowSetValue >::Vector::const_iterator aIter = m_aKeyIter->second.m_aRowSetRow->begin(); for (auto const& keyColumnName : *m_pKeyColumnNames) setOneKeyColumnParameter(nPos,xParameter,*aIter++,keyColumnName.second.nType,keyColumnName.second.nScale); for (auto const& foreignColumnName : *m_pForeignColumnNames) @@ -1120,9 +1120,9 @@ void OKeySet::refreshRow() if(isBeforeFirst() || isAfterLast()) return; - if ( m_aKeyIter->second.second.second.is() ) + if ( m_aKeyIter->second.m_xRow.is() ) { - m_xRow = m_aKeyIter->second.second.second; + m_xRow = m_aKeyIter->second.m_xRow; return; } @@ -1197,7 +1197,7 @@ bool OKeySet::fetchRow() aIter->fill(rColDesc.nPosition, rColDesc.nType, m_xRow); ++aIter; } - m_aKeyIter = m_aKeyMap.emplace( m_aKeyMap.rbegin()->first+1,OKeySetValue(aKeyRow,std::pair<sal_Int32,Reference<XRow> >(0,Reference<XRow>())) ).first; + m_aKeyIter = m_aKeyMap.emplace( m_aKeyMap.rbegin()->first+1,OKeySetValue{aKeyRow,0,Reference<XRow>()} ).first; } else m_bRowCountFinal = true; @@ -1354,12 +1354,12 @@ Reference< XArray > SAL_CALL OKeySet::getArray( sal_Int32 columnIndex ) bool OKeySet::rowUpdated( ) { - return m_aKeyIter != m_aKeyMap.begin() && m_aKeyIter != m_aKeyMap.end() && m_aKeyIter->second.second.first == 2; + return m_aKeyIter != m_aKeyMap.begin() && m_aKeyIter != m_aKeyMap.end() && m_aKeyIter->second.m_nUpdateInsert == 2; } bool OKeySet::rowInserted( ) { - return m_aKeyIter != m_aKeyMap.begin() && m_aKeyIter != m_aKeyMap.end() && m_aKeyIter->second.second.first == 1; + return m_aKeyIter != m_aKeyMap.begin() && m_aKeyIter != m_aKeyMap.end() && m_aKeyIter->second.m_nUpdateInsert == 1; } bool OKeySet::rowDeleted( ) diff --git a/dbaccess/source/core/api/KeySet.hxx b/dbaccess/source/core/api/KeySet.hxx index bd30f3960eb3..c5b78811a814 100644 --- a/dbaccess/source/core/api/KeySet.hxx +++ b/dbaccess/source/core/api/KeySet.hxx @@ -68,7 +68,12 @@ namespace dbaccess SelectColumnsMetaData& o_rColumnNames /* out */, bool i_bAppendTableName = false); - typedef std::pair<ORowSetRow,std::pair<sal_Int32,css::uno::Reference< css::sdbc::XRow> > > OKeySetValue; + struct OKeySetValue + { + ORowSetRow m_aRowSetRow; + sal_Int32 m_nUpdateInsert; + css::uno::Reference< css::sdbc::XRow> m_xRow; + }; typedef std::map<sal_Int32,OKeySetValue > OKeySetMatrix; typedef std::map<sal_Int32, rtl::Reference<ORowSetValueVector> > OUpdatedParameter; // is used when the source supports keys diff --git a/dbaccess/source/core/api/OptimisticSet.cxx b/dbaccess/source/core/api/OptimisticSet.cxx index bce7454aea8a..e77560d41386 100644 --- a/dbaccess/source/core/api/OptimisticSet.cxx +++ b/dbaccess/source/core/api/OptimisticSet.cxx @@ -105,7 +105,7 @@ void OptimisticSet::construct(const Reference< XResultSet>& _xDriverSet,const OU // the first row is empty because it's now easier for us to distinguish when we are beforefirst or first // without extra variable to be set - OKeySetValue keySetValue(nullptr,std::pair<sal_Int32,Reference<XRow> >(0,Reference<XRow>())); + OKeySetValue keySetValue{nullptr,0,Reference<XRow>()}; m_aKeyMap.emplace(0,keySetValue); m_aKeyIter = m_aKeyMap.begin();
