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:

Previous
From: "Dave Page"
Date:
Subject: Re: Snapshot 08.01.0006 available for testing
Next
From: "Dave Page"
Date:
Subject: Re: Snapshot 08.01.0006 available for testing