From 6be67586fa0008c76446796070420e3c7c16e03d Mon Sep 17 00:00:00 2001 From: Hiroshi Inoue Date: Sun, 1 May 2016 08:09:50 +0900 Subject: [PATCH] Set once_reached_eof status when useDeclareFetch=0 so that QR_num_total_read() macro works well. Don't forget to call CC_on_abort_partial() when rollback back to a savepoint. Now the driver passes cursor-block-delete test. --- connection.c | 6 +++++- qresult.c | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/connection.c b/connection.c index bd5bbad..0de5fc9 100644 --- a/connection.c +++ b/connection.c @@ -2423,7 +2423,11 @@ LIBPQ_update_transaction_status(ConnectionClass *self) case PQTRANS_INTRANS: CC_set_in_trans(self); - CC_set_no_error_trans(self); + if (CC_is_in_error_trans(self)) + { + CC_set_no_error_trans(self); + CC_on_abort_partial(self); + } break; case PQTRANS_INERROR: diff --git a/qresult.c b/qresult.c index 92aea86..95ff096 100644 --- a/qresult.c +++ b/qresult.c @@ -697,6 +697,8 @@ inolog("!!%p->cursTup=%d total_read=%d\n", self, self->cursTuple, self->num_tota */ QR_set_command(self, PQcmdStatus(*pgres)); QR_set_cursor(self, cursor); + if (NULL == cursor) + QR_set_reached_eof(self); return TRUE; } -- 2.39.5