Tag: cws_src680_qiq User: fs Date: 06/06/16 07:16:07 Modified: /dba/dbaccess/source/core/api/ KeySet.cxx, KeySet.hxx, RowSetCache.cxx
Log: during #i51143#: replaced TTypeDefaultValuePair/TPositionTypePair with struct with named members - this is much more readable than ::std::pair< ..., ::std::pair< ..., ... > > File Changes: Directory: /dba/dbaccess/source/core/api/ ========================================= File [changed]: KeySet.cxx Url: http://dba.openoffice.org/source/browse/dba/dbaccess/source/core/api/KeySet.cxx?r1=1.60.2.1&r2=1.60.2.2 Delta lines: +42 -42 --------------------- --- KeySet.cxx 24 May 2006 06:40:19 -0000 1.60.2.1 +++ KeySet.cxx 16 Jun 2006 14:16:03 -0000 1.60.2.2 @@ -4,9 +4,9 @@ * * $RCSfile: KeySet.cxx,v $ * - * $Revision: 1.60.2.1 $ + * $Revision: 1.60.2.2 $ * - * last change: $Author: fs $ $Date: 2006/05/24 06:40:19 $ + * last change: $Author: fs $ $Date: 2006/06/16 14:16:03 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -188,8 +188,8 @@ Reference<XDatabaseMetaData> xMeta = m_xConnection->getMetaData(); bool bCase = (xMeta.is() && xMeta->storesMixedCaseQuotedIdentifiers()) ? true : false; - m_pKeyColumnNames = new OColumnNamePos(bCase); - m_pColumnNames = new OColumnNamePos(bCase); + m_pKeyColumnNames = new SelectColumnsMetaData(bCase); + m_pColumnNames = new SelectColumnsMetaData(bCase); Reference<XNameAccess> xKeyColumns = getKeyColumns(); Reference<XColumnsSupplier> xSup(m_xComposer,UNO_QUERY); @@ -198,7 +198,7 @@ ::dbaccess::getColumnPositions(xSup->getColumns(),xKeyColumns,m_sUpdateTableName,(*m_pKeyColumnNames)); ::dbaccess::getColumnPositions(xSup->getColumns(),xSourceColumns,m_sUpdateTableName,(*m_pColumnNames)); - OColumnNamePos::const_iterator aPosIter = (*m_pKeyColumnNames).begin(); + SelectColumnsMetaData::const_iterator aPosIter = (*m_pKeyColumnNames).begin(); for(;aPosIter != (*m_pKeyColumnNames).end();++aPosIter) { if(xSourceColumns->hasByName(aPosIter->first)) @@ -235,7 +235,7 @@ ::dbtools::qualifiedNameComponents(xMetaData,m_sUpdateTableName,sCatalog,sSchema,sTable,::dbtools::eInDataManipulation); sComposedName = ::dbtools::composeTableName( xMetaData, sCatalog, sSchema, sTable, sal_True, ::dbtools::eInDataManipulation ); // create the where clause - OColumnNamePos::const_iterator aIter; + SelectColumnsMetaData::const_iterator aIter; for(aIter = (*m_pKeyColumnNames).begin();aIter != (*m_pKeyColumnNames).end();) { aFilter += sComposedName; @@ -324,7 +324,7 @@ ::rtl::OUString aCondition = ::rtl::OUString::createFromAscii("( "); - OColumnNamePos::const_iterator aIter = (*m_pKeyColumnNames).begin(); + SelectColumnsMetaData::const_iterator aIter = (*m_pKeyColumnNames).begin(); for(;aIter != (*m_pKeyColumnNames).end();++aIter) { aCondition += ::dbtools::quoteName( aQuote,aIter->first); @@ -418,14 +418,14 @@ sal_Int32 i = 1; // here we build the condition part for the update statement - OColumnNamePos::const_iterator aIter = m_pColumnNames->begin(); + SelectColumnsMetaData::const_iterator aIter = m_pColumnNames->begin(); for(;aIter != m_pColumnNames->end();++aIter,++i) { sal_Bool bSigned = m_xSetMetaData->isSigned(i); if(xKeyColumns.is() && xKeyColumns->hasByName(aIter->first)) { sKeyCondition += ::dbtools::quoteName( aQuote,aIter->first); - if((*_rOrginalRow)[aIter->second.first].isNull()) + if((*_rOrginalRow)[aIter->second.nPosition].isNull()) sKeyCondition += ::rtl::OUString::createFromAscii(" IS NULL"); else sKeyCondition += ::rtl::OUString::createFromAscii(" = ?"); @@ -439,19 +439,19 @@ if((*aIndexIter)->hasByName(aIter->first)) { sIndexCondition += ::dbtools::quoteName( aQuote,aIter->first); - if((*_rOrginalRow)[aIter->second.first].isNull()) + if((*_rOrginalRow)[aIter->second.nPosition].isNull()) sIndexCondition += ::rtl::OUString::createFromAscii(" IS NULL"); else { sIndexCondition += ::rtl::OUString::createFromAscii(" = ?"); - aIndexColumnPositions.push_back(aIter->second.first); + aIndexColumnPositions.push_back(aIter->second.nPosition); } sIndexCondition += aAnd; break; } } } - if((*_rInsertRow)[aIter->second.first].isModified()) + if((*_rInsertRow)[aIter->second.nPosition].isModified()) { sSetValues += ::dbtools::quoteName( aQuote,aIter->first); sSetValues += aPara; @@ -502,11 +502,11 @@ for(;aIter != m_pColumnNames->end();++aIter,++j) { - sal_Int32 nPos = aIter->second.first; + sal_Int32 nPos = aIter->second.nPosition; if((*_rInsertRow)[nPos].isModified()) { (*_rInsertRow)[nPos].setSigned((*_rOrginalRow)[nPos].isSigned()); - setParameter(i++,xParameter,(*_rInsertRow)[nPos],aIter->second.second.first); + setParameter(i++,xParameter,(*_rInsertRow)[nPos],aIter->second.nType); } } // and then the values of the where condition @@ -514,7 +514,7 @@ j = 0; for(;aIter != (*m_pKeyColumnNames).end();++aIter,++i,++j) { - setParameter(i,xParameter,(*_rOrginalRow)[aIter->second.first],aIter->second.second.first); + setParameter(i,xParameter,(*_rOrginalRow)[aIter->second.nPosition],aIter->second.nType); } // now we have to set the index values @@ -552,12 +552,12 @@ ::rtl::OUString aQuote = getIdentifierQuoteString(); static ::rtl::OUString aComma(RTL_CONSTASCII_USTRINGPARAM(",")); - OColumnNamePos::const_iterator aIter = m_pColumnNames->begin(); + SelectColumnsMetaData::const_iterator aIter = m_pColumnNames->begin(); sal_Int32 j = 1; sal_Bool bModified = sal_False; for(;aIter != m_pColumnNames->end();++aIter,++j) { - if((*_rInsertRow)[aIter->second.first].isModified()) + if((*_rInsertRow)[aIter->second.nPosition].isModified()) { aSql += ::dbtools::quoteName( aQuote,aIter->first); aSql += aComma; @@ -576,11 +576,11 @@ Reference< XPreparedStatement > xPrep(m_xConnection->prepareStatement(aSql)); Reference< XParameters > xParameter(xPrep,UNO_QUERY); - OColumnNamePos::const_iterator aPosIter = m_pColumnNames->begin(); + SelectColumnsMetaData::const_iterator aPosIter = m_pColumnNames->begin(); sal_uInt16 k = 0; for(sal_Int32 i = 1;aPosIter != m_pColumnNames->end();++aPosIter) { - sal_Int32 nPos = aPosIter->second.first; + sal_Int32 nPos = aPosIter->second.nPosition; if((*_rInsertRow)[nPos].isModified()) { if((*_rInsertRow)[nPos].isNull()) @@ -588,7 +588,7 @@ else { (*_rInsertRow)[nPos].setSigned(m_aSignedFlags[nPos-1]); - setParameter(i++,xParameter,(*_rInsertRow)[nPos],aPosIter->second.second.first); + setParameter(i++,xParameter,(*_rInsertRow)[nPos],aPosIter->second.nType); } } } @@ -598,11 +598,11 @@ if ( m_bInserted ) { // first insert the default values into the insertrow - OColumnNamePos::const_iterator aIter = m_pColumnNames->begin(); + SelectColumnsMetaData::const_iterator aIter = m_pColumnNames->begin(); for(;aIter != m_pColumnNames->end();++aIter) { - if ( !(*_rInsertRow)[aIter->second.first].isModified() ) - (*_rInsertRow)[aIter->second.first] = aIter->second.second.second; + if ( !(*_rInsertRow)[aIter->second.nPosition].isModified() ) + (*_rInsertRow)[aIter->second.nPosition] = aIter->second.sDefaultValue; } try { @@ -623,9 +623,9 @@ #if OSL_DEBUG_LEVEL > 1 ::rtl::OUString sColumnName( xMd->getColumnName(i) ); #endif - OColumnNamePos::iterator aFind = m_pKeyColumnNames->find(*aAutoIter); + SelectColumnsMetaData::iterator aFind = m_pKeyColumnNames->find(*aAutoIter); if ( aFind != m_pKeyColumnNames->end() ) - (*_rInsertRow)[aFind->second.first].fill(i,aFind->second.second.first,xRow); + (*_rInsertRow)[aFind->second.nPosition].fill(i,aFind->second.nType,xRow); } bAutoValuesFetched = sal_True; } @@ -676,9 +676,9 @@ for (sal_Int32 i=1;aAutoIter != aAutoEnd; ++aAutoIter,++i) { // we will only fetch values which are keycolumns - OColumnNamePos::iterator aFind = m_pKeyColumnNames->find(*aAutoIter); + SelectColumnsMetaData::iterator aFind = m_pKeyColumnNames->find(*aAutoIter); if(aFind != m_pKeyColumnNames->end()) - (*_rInsertRow)[aFind->second.first].fill(i,aFind->second.second.first,xRow); + (*_rInsertRow)[aFind->second.nPosition].fill(i,aFind->second.nType,xRow); } } ::comphelper::disposeComponent(xStatement); @@ -706,12 +706,12 @@ void OKeySet::copyRowValue(const ORowSetRow& _rInsertRow,ORowSetRow& _rKeyRow) { connectivity::ORowVector< ORowSetValue >::iterator aIter = _rKeyRow->begin(); - OColumnNamePos::const_iterator aPosIter = (*m_pKeyColumnNames).begin(); - OColumnNamePos::const_iterator aPosEnd = (*m_pKeyColumnNames).end(); + SelectColumnsMetaData::const_iterator aPosIter = (*m_pKeyColumnNames).begin(); + SelectColumnsMetaData::const_iterator aPosEnd = (*m_pKeyColumnNames).end(); for(;aPosIter != aPosEnd;++aPosIter,++aIter) { - *aIter = (*_rInsertRow)[aPosIter->second.first]; - aIter->setTypeKind(aPosIter->second.second.first); + *aIter = (*_rInsertRow)[aPosIter->second.nPosition]; + aIter->setTypeKind(aPosIter->second.nType); } } // ------------------------------------------------------------------------- @@ -742,7 +742,7 @@ ::rtl::OUString aColumnName,sIndexCondition; ::std::vector<sal_Int32> aIndexColumnPositions; - OColumnNamePos::const_iterator aIter = m_pColumnNames->begin(); + SelectColumnsMetaData::const_iterator aIter = m_pColumnNames->begin(); sal_Int32 i = 1; for(i = 1;aIter != m_pColumnNames->end();++aIter,++i) @@ -750,7 +750,7 @@ if(xKeyColumns.is() && xKeyColumns->hasByName(aIter->first)) { aSql += ::dbtools::quoteName( aQuote,aIter->first); - if((*_rDeleteRow)[aIter->second.first].isNull()) + if((*_rDeleteRow)[aIter->second.nPosition].isNull()) { OSL_ENSURE(0,"can a primary key be null"); aSql += ::rtl::OUString::createFromAscii(" IS NULL"); @@ -767,12 +767,12 @@ if((*aIndexIter)->hasByName(aIter->first)) { sIndexCondition += ::dbtools::quoteName( aQuote,aIter->first); - if((*_rDeleteRow)[aIter->second.first].isNull()) + if((*_rDeleteRow)[aIter->second.nPosition].isNull()) sIndexCondition += ::rtl::OUString::createFromAscii(" IS NULL"); else { sIndexCondition += ::rtl::OUString::createFromAscii(" = ?"); - aIndexColumnPositions.push_back(aIter->second.first); + aIndexColumnPositions.push_back(aIter->second.nPosition); } sIndexCondition += aAnd; @@ -792,7 +792,7 @@ i = 1; for(;aIter != (*m_pKeyColumnNames).end();++aIter,++i) { - setParameter(i,xParameter,(*_rDeleteRow)[aIter->second.first],aIter->second.second.first); + setParameter(i,xParameter,(*_rDeleteRow)[aIter->second.nPosition],aIter->second.nType); } // now we have to set the index values @@ -1028,7 +1028,7 @@ xParameter->clearParameters(); sal_Int32 nPos=1; connectivity::ORowVector< ORowSetValue >::const_iterator aIter = m_aKeyIter->second.first->begin(); - OColumnNamePos::const_iterator aPosIter = (*m_pKeyColumnNames).begin(); + SelectColumnsMetaData::const_iterator aPosIter = (*m_pKeyColumnNames).begin(); for(;aPosIter != (*m_pKeyColumnNames).end();++aPosIter,++aIter,++nPos) setParameter(nPos,xParameter,*aIter); @@ -1048,11 +1048,11 @@ { ORowSetRow aKeyRow = new connectivity::ORowVector< ORowSetValue >((*m_pKeyColumnNames).size()); connectivity::ORowVector< ORowSetValue >::iterator aIter = aKeyRow->begin(); - OColumnNamePos::const_iterator aPosIter = (*m_pKeyColumnNames).begin(); + SelectColumnsMetaData::const_iterator aPosIter = (*m_pKeyColumnNames).begin(); for(;aPosIter != (*m_pKeyColumnNames).end();++aPosIter,++aIter) { - const TPositionTypePair& rPair = aPosIter->second; - aIter->fill(rPair.first,rPair.second.first,m_xDriverRow); + const SelectColumnDescription& rColDesc = aPosIter->second; + aIter->fill(rColDesc.nPosition,rColDesc.nType,m_xDriverRow); } m_aKeyIter = m_aKeyMap.insert(OKeySetMatrix::value_type(m_aKeyMap.rbegin()->first+1,OKeySetValue(aKeyRow,0))).first; } @@ -1243,7 +1243,7 @@ void getColumnPositions(const Reference<XNameAccess>& _rxQueryColumns, const Reference<XNameAccess>& _rxColumns, const ::rtl::OUString& _rsUpdateTableName, - OColumnNamePos& _rColumnNames) + SelectColumnsMetaData& _rColumnNames) { // get the real name of the columns Sequence< ::rtl::OUString> aSelNames(_rxQueryColumns->getElementNames()); @@ -1276,7 +1276,7 @@ if ( xColumnProp->getPropertySetInfo()->hasPropertyByName(PROPERTY_DEFAULTVALUE) ) xColumnProp->getPropertyValue(PROPERTY_DEFAULTVALUE) >>= sColumnDefault; - _rColumnNames[sRealName] = TPositionTypePair(nPos,TTypeDefaultValuePair(nType,sColumnDefault)); + _rColumnNames[sRealName] = SelectColumnDescription( nPos, nType, sColumnDefault ); break; } } File [changed]: KeySet.hxx Url: http://dba.openoffice.org/source/browse/dba/dbaccess/source/core/api/KeySet.hxx?r1=1.24&r2=1.24.2.1 Delta lines: +27 -9 -------------------- --- KeySet.hxx 4 May 2006 08:36:03 -0000 1.24 +++ KeySet.hxx 16 Jun 2006 14:16:04 -0000 1.24.2.1 @@ -4,9 +4,9 @@ * * $RCSfile: KeySet.hxx,v $ * - * $Revision: 1.24 $ + * $Revision: 1.24.2.1 $ * - * last change: $Author: rt $ $Date: 2006/05/04 08:36:03 $ + * last change: $Author: fs $ $Date: 2006/06/16 14:16:04 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -57,15 +57,33 @@ namespace dbaccess { - typedef ::std::pair<sal_Int32,::rtl::OUString> TTypeDefaultValuePair; - typedef ::std::pair<sal_Int32,TTypeDefaultValuePair> TPositionTypePair; - DECLARE_STL_MAP(::rtl::OUString, TPositionTypePair,::comphelper::UStringMixLess,OColumnNamePos); + struct SelectColumnDescription + { + sal_Int32 nPosition; + sal_Int32 nType; + ::rtl::OUString sDefaultValue; + + SelectColumnDescription() + :nPosition( 0 ) + ,nType( 0 ) + ,sDefaultValue() + { + } + + SelectColumnDescription( sal_Int32 _nPosition, sal_Int32 _nType, const ::rtl::OUString& _rDefaultValue ) + :nPosition( _nPosition ) + ,nType( _nType ) + ,sDefaultValue( _rDefaultValue ) + { + } + }; + typedef ::std::map< ::rtl::OUString, SelectColumnDescription, ::comphelper::UStringMixLess > SelectColumnsMetaData; // the elements of _rxQueryColumns must have the properties PROPERTY_REALNAME and PROPERTY_TABLENAME void getColumnPositions(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >& _rxQueryColumns, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >& _rxColumns, const ::rtl::OUString& _rsUpdateTableName, - OColumnNamePos& _rColumnNames /* out */); + SelectColumnsMetaData& _rColumnNames /* out */); typedef ::std::pair<ORowSetRow,sal_Int32> OKeySetValue; typedef ::std::map<sal_Int32,OKeySetValue > OKeySetMatrix; @@ -77,8 +95,8 @@ ::std::vector< ::rtl::OUString > m_aAutoColumns; // contains all columns which are autoincrement ones - OColumnNamePos* m_pKeyColumnNames; // contains all key column names - OColumnNamePos* m_pColumnNames; // contains all column names + SelectColumnsMetaData* m_pKeyColumnNames; // contains all key column names + SelectColumnsMetaData* m_pColumnNames; // contains all column names connectivity::OSQLTable m_xTable; // reference to our table ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XPreparedStatement> m_xStatement; ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet> m_xSet; File [changed]: RowSetCache.cxx Url: http://dba.openoffice.org/source/browse/dba/dbaccess/source/core/api/RowSetCache.cxx?r1=1.84&r2=1.84.50.1 Delta lines: +5 -5 ------------------- --- RowSetCache.cxx 6 Feb 2006 16:54:31 -0000 1.84 +++ RowSetCache.cxx 16 Jun 2006 14:16:04 -0000 1.84.50.1 @@ -4,9 +4,9 @@ * * $RCSfile: RowSetCache.cxx,v $ * - * $Revision: 1.84 $ + * $Revision: 1.84.50.1 $ * - * last change: $Author: rt $ $Date: 2006/02/06 16:54:31 $ + * last change: $Author: fs $ $Date: 2006/06/16 14:16:04 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -226,7 +226,7 @@ { Reference<XNameAccess> xSelColumns = xColSup->getColumns(); Reference<XDatabaseMetaData> xMeta = xConnection->getMetaData(); - OColumnNamePos aColumnNames(xMeta.is() && xMeta->storesMixedCaseQuotedIdentifiers() ? true : false); + SelectColumnsMetaData aColumnNames(xMeta.is() && xMeta->storesMixedCaseQuotedIdentifiers() ? true : false); ::dbaccess::getColumnPositions(xSelColumns,xColumns,aUpdateTableName,aColumnNames); bAllKeysFound = !aColumnNames.empty() && sal_Int32(aColumnNames.size()) == xColumns->getElementNames().getLength(); } @@ -293,7 +293,7 @@ else { Reference<XDatabaseMetaData> xMeta = xConnection->getMetaData(); - OColumnNamePos aColumnNames(xMeta.is() && xMeta->storesMixedCaseQuotedIdentifiers() ? true : false); + SelectColumnsMetaData aColumnNames(xMeta.is() && xMeta->storesMixedCaseQuotedIdentifiers() ? true : false); Reference<XColumnsSupplier> xColSup(_xAnalyzer,UNO_QUERY); Reference<XNameAccess> xSelColumns = xColSup->getColumns(); Reference<XNameAccess> xColumns = m_aUpdateTable->getColumns(); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
