connectivity/source/drivers/firebird/Driver.cxx | 2 +- connectivity/source/drivers/firebird/ResultSetMetaData.cxx | 12 +++++++++++- connectivity/source/drivers/firebird/ResultSetMetaData.hxx | 1 + 3 files changed, 13 insertions(+), 2 deletions(-)
New commits: commit c7ac81a803948c871e33588708e6bee0ead6f7cf Author: Julien Nabet <serval2...@yahoo.fr> AuthorDate: Sun May 4 11:28:35 2025 +0200 Commit: Julien Nabet <serval2...@yahoo.fr> CommitDate: Sun May 4 13:54:11 2025 +0200 Fix logic of fb_shutdown check From https://www.firebirdsql.org/file/documentation/release_notes/html/en/2_5/rnfb25-apiods-api.html " Return Values A return value of zero means shutdown was successful A non-zero value means some errors occurred during the shutdown. Details will be written to firebird.log. " Change-Id: I1139e1abdd1f07f0fad23f24a177aa5439546b19 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184939 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2...@yahoo.fr> diff --git a/connectivity/source/drivers/firebird/Driver.cxx b/connectivity/source/drivers/firebird/Driver.cxx index 9ed42abe6fc9..0879a7eca310 100644 --- a/connectivity/source/drivers/firebird/Driver.cxx +++ b/connectivity/source/drivers/firebird/Driver.cxx @@ -115,7 +115,7 @@ void FirebirdDriver::disposing() #endif /*MACOSX*/ #endif /*!SYSTEM_FIREBIRD*/ - OSL_VERIFY(fb_shutdown(0, 1)); + OSL_VERIFY(fb_shutdown(0, 1) == 0); ODriver_BASE::disposing(); } diff --git a/connectivity/source/drivers/firebird/ResultSetMetaData.cxx b/connectivity/source/drivers/firebird/ResultSetMetaData.cxx index 0a80c851a980..1e2db23e0256 100644 --- a/connectivity/source/drivers/firebird/ResultSetMetaData.cxx +++ b/connectivity/source/drivers/firebird/ResultSetMetaData.cxx @@ -138,6 +138,16 @@ OUString SAL_CALL OResultSetMetaData::getColumnName(sal_Int32 column) return sRet; } +OUString OResultSetMetaData::getColumnNameWithoutAlias(sal_Int32 column) +{ + verifyValidColumn(column); + char* pColumnName = m_pSqlda->sqlvar[column - 1].sqlname; + sal_Int32 nColumnNameLength = m_pSqlda->sqlvar[column - 1].sqlname_length; + OUString sRet(pColumnName, nColumnNameLength, RTL_TEXTENCODING_UTF8); + sanitizeIdentifier(sRet); + return sRet; +} + OUString SAL_CALL OResultSetMetaData::getTableName(sal_Int32 column) { verifyValidColumn(column); @@ -188,7 +198,7 @@ sal_Bool SAL_CALL OResultSetMetaData::isAutoIncrement(sal_Int32 column) if( sTable.isEmpty() ) return false; - OUString sColumnName = getColumnName( column ); + OUString sColumnName = getColumnNameWithoutAlias( column ); OUString sSql = "SELECT RDB$IDENTITY_TYPE FROM RDB$RELATION_FIELDS " "WHERE RDB$RELATION_NAME = '" diff --git a/connectivity/source/drivers/firebird/ResultSetMetaData.hxx b/connectivity/source/drivers/firebird/ResultSetMetaData.hxx index 6509e29819c9..ece967379205 100644 --- a/connectivity/source/drivers/firebird/ResultSetMetaData.hxx +++ b/connectivity/source/drivers/firebird/ResultSetMetaData.hxx @@ -62,6 +62,7 @@ namespace connectivity::firebird virtual sal_Int32 SAL_CALL getColumnDisplaySize(sal_Int32 column) override; virtual OUString SAL_CALL getColumnLabel(sal_Int32 column) override; virtual OUString SAL_CALL getColumnName(sal_Int32 column) override; + OUString getColumnNameWithoutAlias(sal_Int32 column); virtual OUString SAL_CALL getSchemaName(sal_Int32 column) override; virtual sal_Int32 SAL_CALL getPrecision(sal_Int32 column) override; virtual sal_Int32 SAL_CALL getScale(sal_Int32 column) override;