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;

Reply via email to