[Libreoffice-commits] core.git: Branch 'libreoffice-6-1' - connectivity/source
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Wed Dec 19 20:29:48 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 3423dca574d0a2d46d0399705cd7926f5c0aab62
Author: Lionel Elie Mamane <lionel at mamane.lu>
AuthorDate: Tue Dec 18 22:04:18 2018 +0100
Commit: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
CommitDate: Wed Dec 19 21:29:24 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/65382
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.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 b50f9008c720..184b305aa1fd 100644
--- a/connectivity/source/drivers/postgresql/pq_statement.cxx
+++ b/connectivity/source/drivers/postgresql/pq_statement.cxx
@@ -939,6 +939,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