Search
j0ke.net Open Build Service
>
Projects
>
internetx
:
mysql5
:
5.5.30-tokudb-7.1.0
>
mysql-5.5.30-tokudb-7.1.0
> mysql-5.5.31-upgrade-datadir.patch
Sign Up
|
Log In
Username
Password
Cancel
Overview
Repositories
Revisions
Requests
Users
Advanced
Attributes
Meta
File mysql-5.5.31-upgrade-datadir.patch of Package mysql-5.5.30-tokudb-7.1.0
Index: client/mysql_upgrade.c =================================================================== --- client/mysql_upgrade.c.orig +++ client/mysql_upgrade.c @@ -557,21 +557,37 @@ static int extract_variable_from_show(DY static int get_upgrade_info_file_name(char* name) { - DYNAMIC_STRING ds_datadir; - DBUG_ENTER("get_upgrade_info_file_name"); + static char *data_dir = NULL; + static size_t len; - if (init_dynamic_string(&ds_datadir, NULL, 32, 32)) - die("Out of memory"); + DBUG_ENTER("get_upgrade_info_file_name"); - if (run_query("show variables like 'datadir'", - &ds_datadir, FALSE) || - extract_variable_from_show(&ds_datadir, name)) + if(data_dir==NULL) { + DYNAMIC_STRING ds_datadir; + + if (init_dynamic_string(&ds_datadir, NULL, 32, 32)) + die("Out of memory"); + + if (run_query("show variables like 'datadir'", + &ds_datadir, FALSE) || + extract_variable_from_show(&ds_datadir, name) + ) + { + dynstr_free(&ds_datadir); + DBUG_RETURN(1); /* Query failed */ + } dynstr_free(&ds_datadir); - DBUG_RETURN(1); /* Query failed */ - } + len = strlen(name)+1; + if ((data_dir=(char*)malloc(sizeof(char)*len))==NULL) + { + die("Out of memory"); + } + strncpy(data_dir,name,len); - dynstr_free(&ds_datadir); + } else { + strncpy(name, data_dir, len); + } fn_format(name, "mysql_upgrade_info", name, "", MYF(0)); DBUG_PRINT("exit", ("name: %s", name)); @@ -880,7 +896,7 @@ int main(int argc, char **argv) Read the mysql_upgrade_info file to check if mysql_upgrade already has been run for this installation of MySQL */ - if (!opt_force && upgrade_already_done()) + if (upgrade_already_done() && !opt_force) { printf("This installation of MySQL is already upgraded to %s, " "use --force if you still need to run mysql_upgrade\n",