Date: Monday, October 23, 2006 @ 18:25:33
  Author: csaba
    Path: /cvsroot/carob/libmysequoia/src

Modified: CarobStmt.cpp (1.41 -> 1.42)

Reverted the result metadata changes.


---------------+
 CarobStmt.cpp |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+)


Index: libmysequoia/src/CarobStmt.cpp
diff -u libmysequoia/src/CarobStmt.cpp:1.41 libmysequoia/src/CarobStmt.cpp:1.42
--- libmysequoia/src/CarobStmt.cpp:1.41 Fri Oct 20 20:40:52 2006
+++ libmysequoia/src/CarobStmt.cpp      Mon Oct 23 18:25:33 2006
@@ -602,9 +602,27 @@
   {
     result = new MYSQL_RES;
     memset(result, 0, sizeof(MYSQL_RES));
+/*  FIXME double free or corruption!
     result->unbuffered_fetch_cancelled = 1; // reminder to not to free this 
resultset fields
     result->fields = m_stmt->fields;
     result->field_count = m_stmt->field_count;
+*/
+    result->data = new MYSQL_DATA;
+    memset(result->data, 0, sizeof(MYSQL_DATA));
+    //duplicate fields to the dummy resultset
+    int field_count = m_stmt->field_count;
+    result->fields = new MYSQL_FIELD[field_count];
+    memcpy(result->fields, m_stmt->fields,  field_count * sizeof(MYSQL_FIELD));
+    for (MYSQL_FIELD *colPtr=result->fields; field_count; colPtr++, 
field_count--)
+    {
+      colPtr->name = cstrdup(colPtr->name);
+      colPtr->org_name = cstrdup(colPtr->org_name);
+      colPtr->table = cstrdup(colPtr->table);
+      colPtr->db = cstrdup(colPtr->db);
+      colPtr->catalog = cstrdup(colPtr->catalog);
+    }
+    result->data->fields = result->field_count = m_stmt->field_count;
+    result->eof = true;
   }  
 
   LOG4CXX_DEBUG(logger, "Leaving result_metadata: result=" << result);

_______________________________________________
Carob-commits mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/carob-commits

Reply via email to