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 <lio...@mamane.lu> AuthorDate: Tue Dec 18 22:04:18 2018 +0100 Commit: Caolán McNamara <caol...@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 <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@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; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits