Re: Snapshot 08.01.0006 available for testing - Mailing list pgsql-odbc
From | Rainer Bauer |
---|---|
Subject | Re: Snapshot 08.01.0006 available for testing |
Date | |
Msg-id | 40tmm1dk9lut57a9s8o57njgj0puveneri@4ax.com Whole thread Raw |
In response to | Re: Snapshot 08.01.0006 available for testing ("Dave Page" <dpage@vale-housing.co.uk>) |
List | pgsql-odbc |
"Dave Page" wrote: >Can you send me a patch for that little lot please? See below, I hope I did everything right. I haven't patched QR_Destructor() though. >Yeuch - I never really used it myself, and am very unfamiliar with that >code as I'm sure you gathered. Let's get things basically stable for >now, then when 8.1 etc. is released and Anoop is back next week, we can >start looking at performance etc. Sounds good. Rainer =================================================================== RCS file: /cvsroot/psqlodbc/psqlodbc/results.c,v retrieving revision 1.83 diff -u -r1.83 results.c --- results.c 3 Nov 2005 12:05:13 -0000 1.83 +++ results.c 4 Nov 2005 14:07:24 -0000 @@ -1482,6 +1482,7 @@ { stmt->bind_row = i; /* set the binding location */ result = SC_fetch(stmt); + res = SC_get_Curres(stmt); #ifdef DRIVER_CURSOR_IMPLEMENT if (SQL_SUCCESS_WITH_INFO == result && 0 == stmt->last_fetch_count && res->keyset) { ***** CVS exited normally with code 1 ***** =================================================================== RCS file: /cvsroot/psqlodbc/psqlodbc/statement.c,v retrieving revision 1.106 diff -u -r1.106 statement.c --- statement.c 3 Nov 2005 22:31:16 -0000 1.106 +++ statement.c 4 Nov 2005 13:39:52 -0000 @@ -922,7 +922,6 @@ ConnInfo *ci = &(SC_get_conn(self)->connInfo); self->last_fetch_count = self->last_fetch_count_include_ommitted = 0; - coli = QR_get_fields(res); /* the column info */ /* Issue the fetch query here in case of declare fetch for subsequent rows */ if (SC_is_fetchcursor(self) && ((self->currTuple % ci->drivers.fetch_max) >= QR_get_num_total_tuples(res) - 1)) @@ -930,28 +929,44 @@ qi.result_in = NULL; qi.cursor = self->cursor_name; qi.row_size = ci->drivers.fetch_max; - sprintf(fetch, "fetch %d in %s",ci->drivers.fetch_max , self->cursor_name); - - /* Cleanup the QR. We need to kill off the cursor first, or this will crash */ - if (self->result->cursor) - { - free(self->result->cursor); - self->result->cursor = NULL; - } - - if (self->result) - { - QR_Destructor(self->result); - self->result = NULL; - } - + sprintf(fetch, "fetch %d in %s",ci->drivers.fetch_max , self->cursor_name); + + + + /* Cleanup the QR. We need to kill off the cursor first, or this will crash */ + + if (self->result->cursor) + + { + + free(self->result->cursor); + + self->result->cursor = NULL; + + } + + + + if (self->result) + + { + + QR_Destructor(self->result); + + self->result = NULL; + + } + + + /* Finished cleanup */ - - res = CC_send_query(self->hdbc, fetch, &qi, qflag); - + + + res = CC_send_query(self->hdbc, fetch, &qi, qflag); SC_set_Result(self,res); } + coli = QR_get_fields(res); /* the column info */ mylog("manual_result = %d, use_declarefetch = %d\n", self->manual_result, ci->drivers.use_declarefetch); if (self->manual_result) ***** CVS exited normally with code 1 *****
pgsql-odbc by date: