[Libreoffice-commits] core.git: Branch 'libreoffice-6-2' - connectivity/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Wed Dec 19 21:11:10 UTC 2018


 connectivity/source/drivers/postgresql/pq_preparedstatement.cxx |    4 ++++
 connectivity/source/drivers/postgresql/pq_statement.cxx         |    9 +++++++++
 2 files changed, 13 insertions(+)

New commits:
commit 2f793336df474740ca5fb0703ae1f7d5febdbff4
Author:     Lionel Elie Mamane <lionel at mamane.lu>
AuthorDate: Tue Dec 18 22:04:18 2018 +0100
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Wed Dec 19 22:10:44 2018 +0100

    postgresql: correctly implement XMultipleResults interface
    
    note that we implement it in a very limited way, since we will always
    return only a single result.
    
    Change-Id: Idc7927d1a6896b78f6de8627ba857982821ac629
    Reviewed-on: https://gerrit.libreoffice.org/65381
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/connectivity/source/drivers/postgresql/pq_preparedstatement.cxx b/connectivity/source/drivers/postgresql/pq_preparedstatement.cxx
index 865222cbcc83..a976d7e3dfc4 100644
--- a/connectivity/source/drivers/postgresql/pq_preparedstatement.cxx
+++ b/connectivity/source/drivers/postgresql/pq_preparedstatement.cxx
@@ -741,6 +741,10 @@ sal_Int32 PreparedStatement::getUpdateCount(  )
 }
 sal_Bool PreparedStatement::getMoreResults(  )
 {
+    Reference< XCloseable > lastResultSet = m_lastResultset;
+    if( lastResultSet.is() )
+        lastResultSet->close();
+    m_multipleResultUpdateCount = -1;
     return false;
 }
 
diff --git a/connectivity/source/drivers/postgresql/pq_statement.cxx b/connectivity/source/drivers/postgresql/pq_statement.cxx
index 17276c94925f..d7357d2fa8fe 100644
--- a/connectivity/source/drivers/postgresql/pq_statement.cxx
+++ b/connectivity/source/drivers/postgresql/pq_statement.cxx
@@ -938,6 +938,15 @@ sal_Int32 Statement::getUpdateCount(  )
 
 sal_Bool Statement::getMoreResults(  )
 {
+    // The PostgreSQL C interface always returns a single result,
+    // so we will never have multiple ones.
+    // Implicitly close the open resultset (if any) as per spec,
+    // and setup to signal "no more result, neither as resultset,
+    // nor as update count".
+    Reference< XCloseable > lastResultSetHolder = m_lastResultset;
+    if( lastResultSetHolder.is() )
+        lastResultSetHolder->close();
+    m_multipleResultUpdateCount = -1;
     return false;
 }
 


More information about the Libreoffice-commits mailing list