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