summaryrefslogtreecommitdiff
path: root/client/mysqltest.c
diff options
context:
space:
mode:
Diffstat (limited to 'client/mysqltest.c')
-rw-r--r--client/mysqltest.c40
1 files changed, 23 insertions, 17 deletions
diff --git a/client/mysqltest.c b/client/mysqltest.c
index 6f212f784ef..4fb97334ddf 100644
--- a/client/mysqltest.c
+++ b/client/mysqltest.c
@@ -3157,7 +3157,7 @@ static void append_stmt_result(DYNAMIC_STRING *ds, MYSQL_STMT *stmt,
if (mysql_stmt_fetch(stmt) != MYSQL_NO_DATA)
die("fetch didn't end with MYSQL_NO_DATA from statement: %d %s",
- mysql_stmt_error(stmt), mysql_stmt_errno(stmt));
+ mysql_stmt_errno(stmt), mysql_stmt_error(stmt));
free_replace_column();
@@ -3622,7 +3622,7 @@ static void run_query_stmt(MYSQL *mysql, struct st_query *command,
if (mysql_stmt_prepare(stmt, query, query_len))
{
handle_error(query, command, mysql_stmt_errno(stmt),
- mysql_stmt_error(stmt), mysql_stmt_sqlstate(stmt), ds);
+ mysql_stmt_error(stmt), mysql_stmt_sqlstate(stmt), ds);
goto end;
}
@@ -3638,30 +3638,35 @@ static void run_query_stmt(MYSQL *mysql, struct st_query *command,
parameter markers.
*/
-#ifdef BUG14013_FIXED
- /*
- Use cursor when retrieving result
- */
if (cursor_protocol_enabled)
{
+ /*
+ Use cursor when retrieving result
+ */
ulong type= CURSOR_TYPE_READ_ONLY;
if (mysql_stmt_attr_set(stmt, STMT_ATTR_CURSOR_TYPE, (void*) &type))
die("mysql_stmt_attr_set(STMT_ATTR_CURSOR_TYPE) failed': %d %s",
- mysql_stmt_errno(stmt), mysql_stmt_error(stmt));
+ mysql_stmt_errno(stmt), mysql_stmt_error(stmt));
}
-#endif
/*
Execute the query
- */
+ */
if (mysql_stmt_execute(stmt))
{
handle_error(query, command, mysql_stmt_errno(stmt),
- mysql_stmt_error(stmt), mysql_stmt_sqlstate(stmt), ds);
+ mysql_stmt_error(stmt), mysql_stmt_sqlstate(stmt), ds);
goto end;
}
/*
+ When running in cursor_protocol get the warnings from execute here
+ and keep them in a separate string for later.
+ */
+ if (cursor_protocol_enabled && !disable_warnings)
+ append_warnings(&ds_execute_warnings, mysql);
+
+ /*
We instruct that we want to update the "max_length" field in
mysql_stmt_store_result(), this is our only way to know how much
buffer to allocate for result data
@@ -3670,7 +3675,7 @@ static void run_query_stmt(MYSQL *mysql, struct st_query *command,
my_bool one= 1;
if (mysql_stmt_attr_set(stmt, STMT_ATTR_UPDATE_MAX_LENGTH, (void*) &one))
die("mysql_stmt_attr_set(STMT_ATTR_UPDATE_MAX_LENGTH) failed': %d %s",
- mysql_stmt_errno(stmt), mysql_stmt_error(stmt));
+ mysql_stmt_errno(stmt), mysql_stmt_error(stmt));
}
/*
@@ -3680,7 +3685,7 @@ static void run_query_stmt(MYSQL *mysql, struct st_query *command,
if (mysql_stmt_store_result(stmt))
{
handle_error(query, command, mysql_stmt_errno(stmt),
- mysql_stmt_error(stmt), mysql_stmt_sqlstate(stmt), ds);
+ mysql_stmt_error(stmt), mysql_stmt_sqlstate(stmt), ds);
goto end;
}
@@ -3701,10 +3706,10 @@ static void run_query_stmt(MYSQL *mysql, struct st_query *command,
uint num_fields= mysql_num_fields(res);
if (display_metadata)
- append_metadata(ds, fields, num_fields);
+ append_metadata(ds, fields, num_fields);
if (!display_result_vertically)
- append_table_headings(ds, fields, num_fields);
+ append_table_headings(ds, fields, num_fields);
append_stmt_result(ds, stmt, fields, num_fields);
@@ -3726,10 +3731,11 @@ static void run_query_stmt(MYSQL *mysql, struct st_query *command,
/* Append warnings to ds - if there are any */
if (append_warnings(&ds_execute_warnings, mysql) ||
- ds_prepare_warnings.length ||
- ds_warnings->length)
+ ds_execute_warnings.length ||
+ ds_prepare_warnings.length ||
+ ds_warnings->length)
{
- dynstr_append_mem(ds, "Warnings:\n", 10);
+ dynstr_append_mem(ds, "Warnings:\n", 10);
if (ds_warnings->length)
dynstr_append_mem(ds, ds_warnings->str,
ds_warnings->length);