From 0ce4b28b5ed848a9e6ee419f91f2bf5d40e98417 Mon Sep 17 00:00:00 2001 From: "hf@deer.(none)" <> Date: Thu, 19 Aug 2004 15:36:05 +0500 Subject: [PATCH] addition to fixes about #4700, 4701 --- libmysqld/lib_sql.cc | 6 ++++++ sql/sql_prepare.cc | 1 + 2 files changed, 7 insertions(+) diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc index 5ecea557361..51a723d225a 100644 --- a/libmysqld/lib_sql.cc +++ b/libmysqld/lib_sql.cc @@ -108,6 +108,12 @@ emb_advanced_command(MYSQL *mysql, enum enum_server_command command, if (!skip_check) result= thd->net.last_errno ? -1 : 0; + /* + If mysql->field_count is set it means the parsing of the query was OK + and metadata was returned (see Protocol::send_fields). + In this case we postpone the error to be returned in mysql_stmt_store_result + (see emb_read_rows) to behave just as standalone server. + */ if (!mysql->field_count) embedded_get_error(mysql); mysql->server_status= thd->server_status; diff --git a/sql/sql_prepare.cc b/sql/sql_prepare.cc index 47cc461fac0..754da84f257 100644 --- a/sql/sql_prepare.cc +++ b/sql/sql_prepare.cc @@ -737,6 +737,7 @@ static bool emb_insert_params_withlog(Prepared_statement *stmt, String *query) else { uchar *buff= (uchar*)client_param->buffer; + param->unsigned_flag= client_param->is_unsigned; param->set_param_func(param, &buff, client_param->length ? *client_param->length :