From 0d78d17249a58d95b4aa2e8fe09f08e22f20c407 Mon Sep 17 00:00:00 2001 From: Julien Nabet Date: Tue, 10 Apr 2018 07:30:38 +0200 Subject: tdf#116890: make unique column names in prepared statement ...like we do resultset. Thanks to Lionel for this solution Reviewed-on: https://gerrit.libreoffice.org/52662 (cherry picked from commit dc823f5fa4a5d2eca56297b9045e5962536c00f9) Change-Id: I44f307cd6bddf76716d7c73b8783070abe43bdf3 Reviewed-on: https://gerrit.libreoffice.org/52698 Tested-by: Jenkins Reviewed-by: Lionel Elie Mamane --- dbaccess/source/core/api/preparedstatement.cxx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/dbaccess/source/core/api/preparedstatement.cxx b/dbaccess/source/core/api/preparedstatement.cxx index 74a8edbf1cd8..3eeb339a5a4c 100644 --- a/dbaccess/source/core/api/preparedstatement.cxx +++ b/dbaccess/source/core/api/preparedstatement.cxx @@ -26,6 +26,7 @@ #include #include +#include #include #include #include @@ -160,6 +161,12 @@ Reference< css::container::XNameAccess > OPreparedStatement::getColumns() // retrieve the name of the column OUString aName = xMetaData->getColumnName(i + 1); OResultColumn* pColumn = new OResultColumn(xMetaData, i + 1, xDBMeta); + // don't silently assume that the name is unique - preparedStatement implementations + // are allowed to return duplicate names, but we are required to have + // unique column names + if ( m_pColumns->hasByName( aName ) ) + aName = ::dbtools::createUniqueName( m_pColumns, aName ); + m_pColumns->append(aName, pColumn); } } -- cgit v1.2.3