From 9e4f7da928156b4ceef30447108a2654c02acc3b Mon Sep 17 00:00:00 2001 From: Hiroshi Inoue Date: Wed, 27 Oct 2010 19:17:56 +0000 Subject: [PATCH] Fix a bug introduced by the previous change. Thanks to Andreas again. --- connection.c | 4 +++- qresult.c | 10 ++++++++-- version.h | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/connection.c b/connection.c index b567ad9..423fa8f 100644 --- a/connection.c +++ b/connection.c @@ -3017,8 +3017,10 @@ inolog("Discarded the first SAVEPOINT\n"); case 'S': /* parameter status */ getParameterValues(self); break; - case 's': /* portal suspended */ + case 's': /* portal suspended + * may not occur */ QR_set_no_fetching_tuples(res); + res->dataFilled = TRUE; break; default: /* skip the unexpected response if possible */ diff --git a/qresult.c b/qresult.c index a5c367d..59c32ac 100644 --- a/qresult.c +++ b/qresult.c @@ -993,9 +993,14 @@ inolog("back_offset=%d and move_offset=%d\n", back_offset, self->move_offset); self->move_offset = 0; num_backend_rows = self->num_cached_rows; } - else if (fetch_number < num_backend_rows && - self->dataFilled) + else if (fetch_number < num_backend_rows) { + if (!self->dataFilled) /* should never occur */ + { + if (stmt) + SC_set_error(stmt, STMT_EXEC_ERROR, "Hmm where are fetched data?", func); + return -1; + } /* return a row from cache */ mylog("%s: fetch_number < fcount: returning tuple %d, fcount = %d\n", func, fetch_number, num_backend_rows); self->tupleField = the_tuples + (fetch_number * num_fields); @@ -1275,6 +1280,7 @@ inolog("id='%c' response_length=%d\n", id, response_length); case 's': /* portal suspend */ mylog("portal suspend"); QR_set_no_fetching_tuples(self); + self->dataFilled = TRUE; break; default: /* skip the unexpected response if possible */ diff --git a/version.h b/version.h index 7902318..d01850e 100644 --- a/version.h +++ b/version.h @@ -12,6 +12,6 @@ #define POSTGRESDRIVERVERSION "09.00.0102" #define POSTGRES_RESOURCE_VERSION "09.00.0102\0" #define PG_DRVFILE_VERSION 9,0,01,02 -#define PG_BUILD_VERSION "201010230005" +#define PG_BUILD_VERSION "201010280001" #endif -- 2.39.5