[Libreoffice-commits] core.git: dbaccess/source

Julien Nabet serval2412 at yahoo.fr
Wed Dec 27 10:35:15 UTC 2017


 dbaccess/source/core/api/OptimisticSet.cxx |  172 ++++++++++++-----------------
 1 file changed, 74 insertions(+), 98 deletions(-)

New commits:
commit 965c93c3776f619eb76d3474febe2ae5fc1ab51a
Author: Julien Nabet <serval2412 at yahoo.fr>
Date:   Tue Dec 26 21:19:43 2017 +0100

    Use for-range loops in dbaccess/OptimisticSet
    
    Change-Id: Iccd0848e772867ece243444dc697e264907b28d4
    Reviewed-on: https://gerrit.libreoffice.org/47072
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Julien Nabet <serval2412 at yahoo.fr>

diff --git a/dbaccess/source/core/api/OptimisticSet.cxx b/dbaccess/source/core/api/OptimisticSet.cxx
index 461bd6334385..5c2a45017f44 100644
--- a/dbaccess/source/core/api/OptimisticSet.cxx
+++ b/dbaccess/source/core/api/OptimisticSet.cxx
@@ -179,29 +179,27 @@ void OptimisticSet::updateRow(const ORowSetRow& _rInsertRow ,const ORowSetRow& _
     TSQLStatements aSql;
 
     // here we build the condition part for the update statement
-    SelectColumnsMetaData::const_iterator aIter = m_pColumnNames->begin();
-    SelectColumnsMetaData::const_iterator aEnd = m_pColumnNames->end();
-    for(;aIter != aEnd;++aIter)
+    for (auto const& columnName : *m_pColumnNames)
     {
-        if ( aResultSetChanged.find( aIter->second.sTableName ) == aResultSetChanged.end() )
-            aResultSetChanged[aIter->second.sTableName] = false;
-        const OUString sQuotedColumnName = ::dbtools::quoteName( aQuote,aIter->second.sRealName);
-        if ( m_pKeyColumnNames->find(aIter->first) != m_pKeyColumnNames->end() )
+        if ( aResultSetChanged.find( columnName.second.sTableName ) == aResultSetChanged.end() )
+            aResultSetChanged[columnName.second.sTableName] = false;
+        const OUString sQuotedColumnName = ::dbtools::quoteName( aQuote,columnName.second.sRealName);
+        if ( m_pKeyColumnNames->find(columnName.first) != m_pKeyColumnNames->end() )
         {
-            aResultSetChanged[aIter->second.sTableName] = m_aJoinedKeyColumns.find(aIter->second.nPosition) != m_aJoinedKeyColumns.end();
-            lcl_fillKeyCondition(aIter->second.sTableName,sQuotedColumnName,(_rOriginalRow->get())[aIter->second.nPosition],aKeyConditions);
+            aResultSetChanged[columnName.second.sTableName] = m_aJoinedKeyColumns.find(columnName.second.nPosition) != m_aJoinedKeyColumns.end();
+            lcl_fillKeyCondition(columnName.second.sTableName,sQuotedColumnName,(_rOriginalRow->get())[columnName.second.nPosition],aKeyConditions);
         }
-        if((_rInsertRow->get())[aIter->second.nPosition].isModified())
+        if((_rInsertRow->get())[columnName.second.nPosition].isModified())
         {
-            if ( m_aJoinedKeyColumns.find(aIter->second.nPosition) != m_aJoinedKeyColumns.end() )
+            if ( m_aJoinedKeyColumns.find(columnName.second.nPosition) != m_aJoinedKeyColumns.end() )
                 throw SQLException();
 
-            std::map<sal_Int32,sal_Int32>::const_iterator aJoinIter = m_aJoinedColumns.find(aIter->second.nPosition);
+            std::map<sal_Int32,sal_Int32>::const_iterator aJoinIter = m_aJoinedColumns.find(columnName.second.nPosition);
             if ( aJoinIter != m_aJoinedColumns.end() )
             {
-                (_rInsertRow->get())[aJoinIter->second] = (_rInsertRow->get())[aIter->second.nPosition];
+                (_rInsertRow->get())[aJoinIter->second] = (_rInsertRow->get())[columnName.second.nPosition];
             }
-            OUStringBuffer& rPart = aSql[aIter->second.sTableName];
+            OUStringBuffer& rPart = aSql[columnName.second.sTableName];
             if ( !rPart.isEmpty() )
                 rPart.append(", ");
             rPart.append(sQuotedColumnName + " = ?");
@@ -216,22 +214,20 @@ void OptimisticSet::updateRow(const ORowSetRow& _rInsertRow ,const ORowSetRow& _
 
     Reference<XDatabaseMetaData> xMetaData = m_xConnection->getMetaData();
 
-    TSQLStatements::iterator aSqlIter = aSql.begin();
-    TSQLStatements::iterator aSqlEnd  = aSql.end();
-    for(;aSqlIter != aSqlEnd ; ++aSqlIter)
+    for (auto const& elem : aSql)
     {
-        if ( !aSqlIter->second.isEmpty() )
+        if ( !elem.second.isEmpty() )
         {
-            m_bResultSetChanged = m_bResultSetChanged || aResultSetChanged[aSqlIter->first];
+            m_bResultSetChanged = m_bResultSetChanged || aResultSetChanged[elem.first];
             OUString sCatalog,sSchema,sTable;
-            ::dbtools::qualifiedNameComponents(xMetaData,aSqlIter->first,sCatalog,sSchema,sTable,::dbtools::EComposeRule::InDataManipulation);
+            ::dbtools::qualifiedNameComponents(xMetaData,elem.first,sCatalog,sSchema,sTable,::dbtools::EComposeRule::InDataManipulation);
             OUStringBuffer sSql("UPDATE " + ::dbtools::composeTableNameForSelect( m_xConnection, sCatalog, sSchema, sTable ) +
-                                       " SET " + aSqlIter->second.toString());
-            OUStringBuffer& rCondition = aKeyConditions[aSqlIter->first];
+                                       " SET " + elem.second.toString());
+            OUStringBuffer& rCondition = aKeyConditions[elem.first];
             if ( !rCondition.isEmpty() )
                 sSql.append(" WHERE " + rCondition.toString() );
 
-            executeUpdate(_rInsertRow ,_rOriginalRow,sSql.makeStringAndClear(),aSqlIter->first);
+            executeUpdate(_rInsertRow ,_rOriginalRow,sSql.makeStringAndClear(),elem.first);
         }
     }
 }
@@ -245,31 +241,29 @@ void OptimisticSet::insertRow( const ORowSetRow& _rInsertRow,const connectivity:
     OUString aQuote  = getIdentifierQuoteString();
 
     // here we build the condition part for the update statement
-    SelectColumnsMetaData::const_iterator aIter = m_pColumnNames->begin();
-    SelectColumnsMetaData::const_iterator aEnd = m_pColumnNames->end();
-    for(;aIter != aEnd;++aIter)
+    for (auto const& columnName : *m_pColumnNames)
     {
-        if ( aResultSetChanged.find( aIter->second.sTableName ) == aResultSetChanged.end() )
-            aResultSetChanged[aIter->second.sTableName] = false;
+        if ( aResultSetChanged.find( columnName.second.sTableName ) == aResultSetChanged.end() )
+            aResultSetChanged[columnName.second.sTableName] = false;
 
-        const OUString sQuotedColumnName = ::dbtools::quoteName( aQuote,aIter->second.sRealName);
-        if ( (_rInsertRow->get())[aIter->second.nPosition].isModified() )
+        const OUString sQuotedColumnName = ::dbtools::quoteName( aQuote,columnName.second.sRealName);
+        if ( (_rInsertRow->get())[columnName.second.nPosition].isModified() )
         {
-            if ( m_aJoinedKeyColumns.find(aIter->second.nPosition) != m_aJoinedKeyColumns.end() )
+            if ( m_aJoinedKeyColumns.find(columnName.second.nPosition) != m_aJoinedKeyColumns.end() )
             {
-                lcl_fillKeyCondition(aIter->second.sTableName,sQuotedColumnName,(_rInsertRow->get())[aIter->second.nPosition],aKeyConditions);
-                aResultSetChanged[aIter->second.sTableName] = true;
+                lcl_fillKeyCondition(columnName.second.sTableName,sQuotedColumnName,(_rInsertRow->get())[columnName.second.nPosition],aKeyConditions);
+                aResultSetChanged[columnName.second.sTableName] = true;
             }
-            std::map<sal_Int32,sal_Int32>::const_iterator aJoinIter = m_aJoinedColumns.find(aIter->second.nPosition);
+            std::map<sal_Int32,sal_Int32>::const_iterator aJoinIter = m_aJoinedColumns.find(columnName.second.nPosition);
             if ( aJoinIter != m_aJoinedColumns.end() )
             {
-                (_rInsertRow->get())[aJoinIter->second] = (_rInsertRow->get())[aIter->second.nPosition];
+                (_rInsertRow->get())[aJoinIter->second] = (_rInsertRow->get())[columnName.second.nPosition];
             }
-            OUStringBuffer& rPart = aSql[aIter->second.sTableName];
+            OUStringBuffer& rPart = aSql[columnName.second.sTableName];
             if ( !rPart.isEmpty() )
                 rPart.append(", ");
             rPart.append(sQuotedColumnName);
-            OUStringBuffer& rParam = aParameter[aIter->second.sTableName];
+            OUStringBuffer& rParam = aParameter[columnName.second.sTableName];
             if ( !rParam.isEmpty() )
                 rParam.append(", ");
             rParam.append("?");
@@ -279,23 +273,21 @@ void OptimisticSet::insertRow( const ORowSetRow& _rInsertRow,const connectivity:
         ::dbtools::throwSQLException( DBA_RES( RID_STR_NO_VALUE_CHANGED ), StandardSQLState::GENERAL_ERROR, m_xConnection );
 
     Reference<XDatabaseMetaData> xMetaData = m_xConnection->getMetaData();
-    TSQLStatements::iterator aSqlIter = aSql.begin();
-    TSQLStatements::iterator aSqlEnd  = aSql.end();
-    for(;aSqlIter != aSqlEnd ; ++aSqlIter)
+    for (auto const& elem : aSql)
     {
-        if ( !aSqlIter->second.isEmpty() )
+        if ( !elem.second.isEmpty() )
         {
-            m_bResultSetChanged = m_bResultSetChanged || aResultSetChanged[aSqlIter->first];
+            m_bResultSetChanged = m_bResultSetChanged || aResultSetChanged[elem.first];
             OUString sCatalog,sSchema,sTable;
-            ::dbtools::qualifiedNameComponents(xMetaData,aSqlIter->first,sCatalog,sSchema,sTable,::dbtools::EComposeRule::InDataManipulation);
+            ::dbtools::qualifiedNameComponents(xMetaData,elem.first,sCatalog,sSchema,sTable,::dbtools::EComposeRule::InDataManipulation);
             OUString sComposedTableName = ::dbtools::composeTableNameForSelect( m_xConnection, sCatalog, sSchema, sTable );
-            OUString sSql("INSERT INTO " + sComposedTableName + " ( " + aSqlIter->second.toString() +
-                                 ") VALUES ( " + aParameter[aSqlIter->first].toString() + " )");
+            OUString sSql("INSERT INTO " + sComposedTableName + " ( " + elem.second.toString() +
+                                 ") VALUES ( " + aParameter[elem.first].toString() + " )");
 
-            OUStringBuffer& rCondition = aKeyConditions[aSqlIter->first];
+            OUStringBuffer& rCondition = aKeyConditions[elem.first];
             if ( !rCondition.isEmpty() )
             {
-                OUString sQuery("SELECT " + aSqlIter->second.toString() + " FROM " + sComposedTableName +
+                OUString sQuery("SELECT " + elem.second.toString() + " FROM " + sComposedTableName +
                                        " WHERE " + rCondition.toString());
 
                 try
@@ -303,14 +295,12 @@ void OptimisticSet::insertRow( const ORowSetRow& _rInsertRow,const connectivity:
                     Reference< XPreparedStatement > xPrep(m_xConnection->prepareStatement(sQuery));
                     Reference< XParameters > xParameter(xPrep,UNO_QUERY);
                     // and then the values of the where condition
-                    SelectColumnsMetaData::iterator aKeyCol = m_pKeyColumnNames->begin();
-                    SelectColumnsMetaData::iterator aKeysEnd = m_pKeyColumnNames->end();
                     sal_Int32 i = 1;
-                    for(;aKeyCol != aKeysEnd;++aKeyCol)
+                    for (auto const& keyColumnName : *m_pKeyColumnNames)
                     {
-                        if ( aKeyCol->second.sTableName == aSqlIter->first )
+                        if ( keyColumnName.second.sTableName == elem.first )
                         {
-                            setParameter(i++,xParameter,(_rInsertRow->get())[aKeyCol->second.nPosition],aKeyCol->second.nType,aKeyCol->second.nScale);
+                            setParameter(i++,xParameter,(_rInsertRow->get())[keyColumnName.second.nPosition],keyColumnName.second.nType,keyColumnName.second.nScale);
                         }
                     }
                     Reference<XResultSet> xRes = xPrep->executeQuery();
@@ -326,7 +316,7 @@ void OptimisticSet::insertRow( const ORowSetRow& _rInsertRow,const connectivity:
                 }
             }
 
-            executeInsert(_rInsertRow,sSql,aSqlIter->first);
+            executeInsert(_rInsertRow,sSql,elem.first);
         }
     }
 }
@@ -337,30 +327,26 @@ void OptimisticSet::deleteRow(const ORowSetRow& _rDeleteRow,const connectivity::
     TSQLStatements aKeyConditions;
 
     // here we build the condition part for the update statement
-    SelectColumnsMetaData::const_iterator aIter = m_pColumnNames->begin();
-    SelectColumnsMetaData::const_iterator aEnd = m_pColumnNames->end();
-    for(;aIter != aEnd;++aIter)
+    for (auto const& columnName : *m_pColumnNames)
     {
-        if ( m_aJoinedKeyColumns.find(aIter->second.nPosition) == m_aJoinedKeyColumns.end() && m_pKeyColumnNames->find(aIter->first) != m_pKeyColumnNames->end() )
+        if ( m_aJoinedKeyColumns.find(columnName.second.nPosition) == m_aJoinedKeyColumns.end() && m_pKeyColumnNames->find(columnName.first) != m_pKeyColumnNames->end() )
         {
             // only delete rows which aren't the key in the join
-            const OUString sQuotedColumnName = ::dbtools::quoteName( aQuote,aIter->second.sRealName);
-            lcl_fillKeyCondition(aIter->second.sTableName,sQuotedColumnName,(_rDeleteRow->get())[aIter->second.nPosition],aKeyConditions);
+            const OUString sQuotedColumnName = ::dbtools::quoteName( aQuote,columnName.second.sRealName);
+            lcl_fillKeyCondition(columnName.second.sTableName,sQuotedColumnName,(_rDeleteRow->get())[columnName.second.nPosition],aKeyConditions);
         }
     }
     Reference<XDatabaseMetaData> xMetaData = m_xConnection->getMetaData();
-    TSQLStatements::iterator aSqlIter = aKeyConditions.begin();
-    TSQLStatements::iterator aSqlEnd  = aKeyConditions.end();
-    for(;aSqlIter != aSqlEnd ; ++aSqlIter)
+    for (auto & keyCondition : aKeyConditions)
     {
-        OUStringBuffer& rCondition = aSqlIter->second;
+        OUStringBuffer& rCondition = keyCondition.second;
         if ( !rCondition.isEmpty() )
         {
             OUString sCatalog,sSchema,sTable;
-            ::dbtools::qualifiedNameComponents(xMetaData,aSqlIter->first,sCatalog,sSchema,sTable,::dbtools::EComposeRule::InDataManipulation);
+            ::dbtools::qualifiedNameComponents(xMetaData,keyCondition.first,sCatalog,sSchema,sTable,::dbtools::EComposeRule::InDataManipulation);
             OUString sSql("DELETE FROM " + ::dbtools::composeTableNameForSelect( m_xConnection, sCatalog, sSchema, sTable ) +
                                  " WHERE " + rCondition.toString() );
-            executeDelete(_rDeleteRow, sSql, aSqlIter->first);
+            executeDelete(_rDeleteRow, sSql, keyCondition.first);
         }
     }
 }
@@ -371,13 +357,11 @@ void OptimisticSet::executeDelete(const ORowSetRow& _rDeleteRow,const OUString&
     Reference< XPreparedStatement > xPrep(m_xConnection->prepareStatement(i_sSQL));
     Reference< XParameters > xParameter(xPrep,UNO_QUERY);
 
-    SelectColumnsMetaData::const_iterator aIter = m_pKeyColumnNames->begin();
-    SelectColumnsMetaData::const_iterator aEnd = m_pKeyColumnNames->end();
     sal_Int32 i = 1;
-    for(;aIter != aEnd;++aIter)
+    for (auto const& keyColumnName : *m_pKeyColumnNames)
     {
-        if ( aIter->second.sTableName == i_sTableName )
-            setParameter(i++,xParameter,(_rDeleteRow->get())[aIter->second.nPosition],aIter->second.nType,aIter->second.nScale);
+        if ( keyColumnName.second.sTableName == i_sTableName )
+            setParameter(i++,xParameter,(_rDeleteRow->get())[keyColumnName.second.nPosition],keyColumnName.second.nType,keyColumnName.second.nScale);
     }
     m_bDeleted = xPrep->executeUpdate() > 0;
 
@@ -393,13 +377,12 @@ void OptimisticSet::executeDelete(const ORowSetRow& _rDeleteRow,const OUString&
 
 void OptimisticSet::fillJoinedColumns_throw(const std::vector< TNodePair >& i_aJoinColumns)
 {
-    std::vector< TNodePair >::const_iterator aIter = i_aJoinColumns.begin();
-    for(;aIter != i_aJoinColumns.end();++aIter)
+    for (auto const& joinColumn : i_aJoinColumns)
     {
         OUString sColumnName,sTableName;
-        m_aSqlIterator.getColumnRange(aIter->first,sColumnName,sTableName);
+        m_aSqlIterator.getColumnRange(joinColumn.first,sColumnName,sTableName);
         OUString sLeft(sTableName + "." + sColumnName);
-        m_aSqlIterator.getColumnRange(aIter->second,sColumnName,sTableName);
+        m_aSqlIterator.getColumnRange(joinColumn.second,sColumnName,sTableName);
         OUString sRight(sTableName + "." + sColumnName);
         fillJoinedColumns_throw(sLeft, sRight);
     }
@@ -553,34 +536,30 @@ void OptimisticSet::fillMissingValues(ORowSetValueVector::Vector& io_aRow) const
     TSQLStatements aKeyConditions;
     OUString aQuote  = getIdentifierQuoteString();
     // here we build the condition part for the update statement
-    SelectColumnsMetaData::const_iterator aColIter = m_pColumnNames->begin();
-    SelectColumnsMetaData::const_iterator aColEnd = m_pColumnNames->end();
-    for(;aColIter != aColEnd;++aColIter)
+    for (auto const& columnName : *m_pColumnNames)
     {
-        const OUString sQuotedColumnName = ::dbtools::quoteName( aQuote,aColIter->second.sRealName);
-        if ( m_aJoinedKeyColumns.find(aColIter->second.nPosition) != m_aJoinedKeyColumns.end() )
+        const OUString sQuotedColumnName = ::dbtools::quoteName( aQuote,columnName.second.sRealName);
+        if ( m_aJoinedKeyColumns.find(columnName.second.nPosition) != m_aJoinedKeyColumns.end() )
         {
-            lcl_fillKeyCondition(aColIter->second.sTableName,sQuotedColumnName,io_aRow[aColIter->second.nPosition],aKeyConditions);
+            lcl_fillKeyCondition(columnName.second.sTableName,sQuotedColumnName,io_aRow[columnName.second.nPosition],aKeyConditions);
         }
-        OUStringBuffer& rPart = aSql[aColIter->second.sTableName];
+        OUStringBuffer& rPart = aSql[columnName.second.sTableName];
         if ( !rPart.isEmpty() )
             rPart.append(", ");
         rPart.append(sQuotedColumnName);
     }
     Reference<XDatabaseMetaData> xMetaData = m_xConnection->getMetaData();
-    TSQLStatements::iterator aSqlIter = aSql.begin();
-    TSQLStatements::iterator aSqlEnd  = aSql.end();
-    for(;aSqlIter != aSqlEnd ; ++aSqlIter)
+    for (auto const& elem : aSql)
     {
-        if ( !aSqlIter->second.isEmpty() )
+        if ( !elem.second.isEmpty() )
         {
-            OUStringBuffer& rCondition = aKeyConditions[aSqlIter->first];
+            OUStringBuffer& rCondition = aKeyConditions[elem.first];
             if ( !rCondition.isEmpty() )
             {
                 OUString sCatalog,sSchema,sTable;
-                ::dbtools::qualifiedNameComponents(xMetaData,aSqlIter->first,sCatalog,sSchema,sTable,::dbtools::EComposeRule::InDataManipulation);
+                ::dbtools::qualifiedNameComponents(xMetaData,elem.first,sCatalog,sSchema,sTable,::dbtools::EComposeRule::InDataManipulation);
                 OUString sComposedTableName = ::dbtools::composeTableNameForSelect( m_xConnection, sCatalog, sSchema, sTable );
-                OUString sQuery("SELECT " + aSqlIter->second.toString() + " FROM " + sComposedTableName + " WHERE " +
+                OUString sQuery("SELECT " + elem.second.toString() + " FROM " + sComposedTableName + " WHERE " +
                                        rCondition.makeStringAndClear());
 
                 try
@@ -588,14 +567,12 @@ void OptimisticSet::fillMissingValues(ORowSetValueVector::Vector& io_aRow) const
                     Reference< XPreparedStatement > xPrep(m_xConnection->prepareStatement(sQuery));
                     Reference< XParameters > xParameter(xPrep,UNO_QUERY);
                     // and then the values of the where condition
-                    SelectColumnsMetaData::iterator aKeyIter = m_pKeyColumnNames->begin();
-                    SelectColumnsMetaData::iterator aKeyEnd = m_pKeyColumnNames->end();
                     sal_Int32 i = 1;
-                    for(;aKeyIter != aKeyEnd;++aKeyIter)
+                    for (auto const& keyColumn : *m_pKeyColumnNames)
                     {
-                        if ( aKeyIter->second.sTableName == aSqlIter->first )
+                        if ( keyColumn.second.sTableName == elem.first )
                         {
-                            setParameter(i++,xParameter,io_aRow[aKeyIter->second.nPosition],aKeyIter->second.nType,aKeyIter->second.nScale);
+                            setParameter(i++,xParameter,io_aRow[keyColumn.second.nPosition],keyColumn.second.nType,keyColumn.second.nScale);
                         }
                     }
                     Reference<XResultSet> xRes = xPrep->executeQuery();
@@ -603,13 +580,12 @@ void OptimisticSet::fillMissingValues(ORowSetValueVector::Vector& io_aRow) const
                     if ( xRow.is() && xRes->next() )
                     {
                         i = 1;
-                        aColIter = m_pColumnNames->begin();
-                        for(;aColIter != aColEnd;++aColIter)
+                        for (auto const& columnName : *m_pColumnNames)
                         {
-                            if ( aColIter->second.sTableName == aSqlIter->first )
+                            if ( columnName.second.sTableName == elem.first )
                             {
-                                io_aRow[aColIter->second.nPosition].fill(i++, aColIter->second.nType, xRow);
-                                io_aRow[aColIter->second.nPosition].setModified(true);
+                                io_aRow[columnName.second.nPosition].fill(i++, columnName.second.nType, xRow);
+                                io_aRow[columnName.second.nPosition].setModified(true);
                             }
                         }
                     }


More information about the Libreoffice-commits mailing list