diff options
author | unknown <msvensson@neptunus.(none)> | 2005-12-09 18:51:45 +0100 |
---|---|---|
committer | unknown <msvensson@neptunus.(none)> | 2005-12-09 18:51:45 +0100 |
commit | 361655780d8a367f20fe9c3d547c9a7685888e5d (patch) | |
tree | 8937a679343f558b3dcd3ff2cd04505c5b5870fa /client | |
parent | 9bf7a9ce148e240a72dad9566c1b175f43fff3ad (diff) | |
download | mariadb-git-361655780d8a367f20fe9c3d547c9a7685888e5d.tar.gz |
Fix warnings for running with --view_protocol
client/mysqltest.c:
Collect warnings from creating the "object" for the query and ouput those after the query has been executed
Diffstat (limited to 'client')
-rw-r--r-- | client/mysqltest.c | 35 |
1 files changed, 25 insertions, 10 deletions
diff --git a/client/mysqltest.c b/client/mysqltest.c index 60dfb7a48a7..b500c3dbe1a 100644 --- a/client/mysqltest.c +++ b/client/mysqltest.c @@ -3269,6 +3269,8 @@ static int append_warnings(DYNAMIC_STRING *ds, MYSQL* mysql) append_result(ds, warn_res); mysql_free_result(warn_res); + DBUG_PRINT("warnings", ("%s", ds->str)); + DBUG_RETURN(count); } @@ -3292,11 +3294,10 @@ static int append_warnings(DYNAMIC_STRING *ds, MYSQL* mysql) static void run_query_normal(MYSQL *mysql, struct st_query *command, int flags, char *query, int query_len, - DYNAMIC_STRING *ds) + DYNAMIC_STRING *ds, DYNAMIC_STRING *ds_warnings) { MYSQL_RES *res= 0; int err= 0, counter= 0; - DYNAMIC_STRING ds_warnings; DBUG_ENTER("run_query_normal"); DBUG_PRINT("enter",("flags: %d", flags)); DBUG_PRINT("enter", ("query: '%-.60s'", query)); @@ -3375,13 +3376,11 @@ static void run_query_normal(MYSQL *mysql, struct st_query *command, */ if (!disable_warnings && !mysql_more_results(mysql)) { - init_dynamic_string(&ds_warnings, NULL, 0, 256); - if (append_warnings(&ds_warnings, mysql)) + if (append_warnings(ds_warnings, mysql) || ds_warnings->length) { dynstr_append_mem(ds, "Warnings:\n", 10); - dynstr_append_mem(ds, ds_warnings.str, ds_warnings.length); + dynstr_append_mem(ds, ds_warnings->str, ds_warnings->length); } - dynstr_free(&ds_warnings); } if (!disable_info) @@ -3555,7 +3554,8 @@ static void handle_no_error(struct st_query *q) */ static void run_query_stmt(MYSQL *mysql, struct st_query *command, - char *query, int query_len, DYNAMIC_STRING *ds) + char *query, int query_len, DYNAMIC_STRING *ds, + DYNAMIC_STRING *ds_warnings) { MYSQL_RES *res= NULL; /* Note that here 'res' is meta data result set */ MYSQL_STMT *stmt; @@ -3691,9 +3691,13 @@ 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_prepare_warnings.length || + ds_warnings->length) { dynstr_append_mem(ds, "Warnings:\n", 10); + if (ds_warnings->length) + dynstr_append_mem(ds, ds_warnings->str, + ds_warnings->length); if (ds_prepare_warnings.length) dynstr_append_mem(ds, ds_prepare_warnings.str, ds_prepare_warnings.length); @@ -3749,12 +3753,15 @@ static void run_query(MYSQL *mysql, struct st_query *command, int flags) { DYNAMIC_STRING *ds; DYNAMIC_STRING ds_result; + DYNAMIC_STRING ds_warnings; DYNAMIC_STRING eval_query; char *query; int query_len; my_bool view_created= 0, sp_created= 0; my_bool complete_query= ((flags & QUERY_SEND) && (flags & QUERY_REAP)); + init_dynamic_string(&ds_warnings, NULL, 0, 256); + /* Evaluate query if this is an eval command */ @@ -3830,6 +3837,12 @@ static void run_query(MYSQL *mysql, struct st_query *command, int flags) view_created= 1; query= (char*)"SELECT * FROM mysqltest_tmp_v"; query_len = strlen(query); + + /* + Collect warnings from create of the view that should otherwise + have been produced when the SELECT was executed + */ + append_warnings(&ds_warnings, mysql); } dynstr_free(&query_str); @@ -3888,9 +3901,10 @@ static void run_query(MYSQL *mysql, struct st_query *command, int flags) if (ps_protocol_enabled && complete_query && match_re(&ps_re, query)) - run_query_stmt(mysql, command, query, query_len, ds); + run_query_stmt(mysql, command, query, query_len, ds, &ds_warnings); else - run_query_normal(mysql, command, flags, query, query_len, ds); + run_query_normal(mysql, command, flags, query, query_len, + ds, &ds_warnings); if (sp_created) { @@ -3923,6 +3937,7 @@ static void run_query(MYSQL *mysql, struct st_query *command, int flags) check_result(ds, command->record_file, command->require_file); } + dynstr_free(&ds_warnings); if (ds == &ds_result) dynstr_free(&ds_result); if (command->type == Q_EVAL) |