From: Bruce Momjian Date: Mon, 23 Sep 2002 01:43:23 +0000 (+0000) Subject: Obviously noone has ever tested the doubling of availiable result ids X-Git-Tag: REL7_3~414 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f9a1ea6fa7fa07616aad12625031ff328624ed4a;p=postgresql Obviously noone has ever tested the doubling of availiable result ids up to reaching the hard limit. After opening 16(=current REST_START value) results via pg_exec, the next pg_exec tries to find an empty slot forever :-( . In PgSetResultId file pgtclId.c in the for loop there has to be done a break, if res_max ist reached. The piece of code should look like if (resid == connid->res_max) { resid = 0; break; /* the break as to be added */ } now everything works (double available results after reaching RES_START up to reaching RES_HARD_MAX) Gerhard Hintermayer --- diff --git a/src/interfaces/libpgtcl/pgtclId.c b/src/interfaces/libpgtcl/pgtclId.c index 2187503646..f3465069b1 100644 --- a/src/interfaces/libpgtcl/pgtclId.c +++ b/src/interfaces/libpgtcl/pgtclId.c @@ -13,7 +13,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclId.c,v 1.35 2002/09/04 20:31:46 momjian Exp $ + * $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclId.c,v 1.36 2002/09/23 01:43:23 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -343,7 +343,10 @@ PgSetResultId(Tcl_Interp *interp, char *connid_c, PGresult *res) for (resid = connid->res_last + 1; resid != connid->res_last; resid++) { if (resid == connid->res_max) + { resid = 0; + break; + } if (!connid->results[resid]) { connid->res_last = resid;