--- sql/mysql/parser3mysql.C 2002/02/08 08:32:46 1.7 +++ sql/mysql/parser3mysql.C 2002/12/09 12:29:03 1.9 @@ -10,7 +10,7 @@ 2001.11.06 numrows on "HP-UX istok1 B.11.00 A 9000/869 448594332 two-user license" 3.23.42 & 4.0.0.alfa never worked, both subst & .sl version returned 0 */ -static const char *RCSId="$Id: parser3mysql.C,v 1.7 2002/02/08 08:32:46 paf Exp $"; +static const char *RCSId="$Id: parser3mysql.C,v 1.9 2002/12/09 12:29:03 paf Exp $"; #include "config_includes.h" @@ -204,19 +204,27 @@ public: mysql_free_result(res); services._throw("result contains no columns"); } + + bool failed=false; + SQL_Error sql_error; +#define CHECK(afailed) \ + if(afailed) { \ + failed=true; \ + goto cleanup; \ + } for(int i=0; iname); void *ptr=services.malloc(size); memcpy(ptr, field->name, size); - handlers.add_column(ptr, size); + CHECK(handlers.add_column(sql_error, ptr, size)); } - handlers.before_rows(); + CHECK(handlers.before_rows(sql_error)); while(MYSQL_ROW mysql_row=mysql_fetch_row(res)) { - handlers.add_row(); + CHECK(handlers.add_row(sql_error)); unsigned long *lengths=mysql_fetch_lengths(res); for(int i=0; i