diff options
author | Michael Widenius <monty@askmonty.org> | 2012-08-01 17:27:34 +0300 |
---|---|---|
committer | Michael Widenius <monty@askmonty.org> | 2012-08-01 17:27:34 +0300 |
commit | 1d0f70c2f894b27e98773a282871d32802f67964 (patch) | |
tree | 833e683e0ced29c4323c29a9d845703d4dfcd81b /client/mysql_upgrade.c | |
parent | 5a86a61219826aadf8d08cbc447fe438f2bf50c3 (diff) | |
download | mariadb-git-1d0f70c2f894b27e98773a282871d32802f67964.tar.gz |
Temporary commit of merge of MariaDB 10.0-base and MySQL 5.6
Diffstat (limited to 'client/mysql_upgrade.c')
-rw-r--r-- | client/mysql_upgrade.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/client/mysql_upgrade.c b/client/mysql_upgrade.c index d7f311fcb69..5fe5445bc05 100644 --- a/client/mysql_upgrade.c +++ b/client/mysql_upgrade.c @@ -800,14 +800,32 @@ static void print_line(char* line) static int run_sql_fix_privilege_tables(void) { int found_real_errors= 0; + const char **query_ptr; + DYNAMIC_STRING ds_script; DYNAMIC_STRING ds_result; DBUG_ENTER("run_sql_fix_privilege_tables"); + if (init_dynamic_string(&ds_script, "", 65536, 1024)) + die("Out of memory"); + if (init_dynamic_string(&ds_result, "", 512, 512)) die("Out of memory"); verbose("Phase 3/3: Running 'mysql_fix_privilege_tables'..."); - run_query(mysql_fix_privilege_tables, + /* + Individual queries can not be executed independently by invoking + a forked mysql client, because the script uses session variables + and prepared statements. + */ + for ( query_ptr= &mysql_fix_privilege_tables[0]; + *query_ptr != NULL; + query_ptr++ + ) + { + dynstr_append(&ds_script, *query_ptr); + } + + run_query(ds_script.str, &ds_result, /* Collect result */ TRUE); @@ -835,6 +853,7 @@ static int run_sql_fix_privilege_tables(void) } dynstr_free(&ds_result); + dynstr_free(&ds_script); DBUG_RETURN(found_real_errors); } |