1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Fix for MDEV-5547: Bad error message when moving very old .frm files to MariaDB 5.5.

mysql_upgrade --help now also prints out --default options and variable values.
mysql_upgrade now prints permission errors.
mysql_upgrade doesn't print some non essential info if --silent is used.
Added handler error message about incompatible versions
Fixed that mysqlbug and mysql_install_db have the executable flag set.
Removed executable flag for some non executable files.
Changed in mysql_install_db askmonty.org to mariadb.com.
Ensured that all client executables prints --default options the same way.
Allow REPAIR ... USE_FRM for old .frm files if the are still compatible.
Extended shown error for storage engine messages.


client/mysql.cc:
  print_defaults() should be first (as in all other programs)
client/mysql_upgrade.c:
  --help now also prints out --default options and variable values
  Print out error if wrong permissions
  Don't print info if --silent
client/mysqladmin.cc:
  print_defaults() should be first (as in all other programs)
client/mysqlbinlog.cc:
  Added print_defaults() to --help
client/mysqlcheck.c:
  Added empty line in --help
client/mysqlimport.c:
  Added empty line in --help
client/mysqlshow.c:
  Made --help compatible
client/mysqlslap.c:
  Made --help compatible
client/mysqltest.cc:
  Added print_defaults() to --help
include/handler_ername.h:
  Added handler error message
include/my_base.h:
  Added handler error message
mysql-test/r/mysql_upgrade.result:
  Updated results
mysql-test/r/repair.result:
  Added test case for better error messages
mysql-test/std_data/host_old.MYD:
  Added test case for better error messages
mysql-test/std_data/host_old.MYI:
  Added test case for better error messages
mysql-test/std_data/host_old.frm:
  Added test case for better error messages
mysql-test/t/repair.test:
  Added test case for better error messages
mysys/my_handler_errors.h:
  Added handler error message
scripts/CMakeLists.txt:
  Fixed that mysqlbug and mysql_install_db have the executable flag set
scripts/mysql_install_db.sh:
  askmonty.org -> mariadb.com
sql/ha_partition.cc:
  Sometimes table_type() can be called for errors even if partition didn't manage to open any files
sql/handler.cc:
  Write clear text for not handled, but defined error messages.
sql/share/errmsg-utf8.txt:
  Extended shown error for storage engine messages
sql/sql_admin.cc:
  Allow REPAIR ... USE_FRM for old .frm files if the are still compatible
storage/myisam/ha_myisam.cc:
  Use new error message
This commit is contained in:
Michael Widenius
2014-01-22 15:16:57 +02:00
parent 5e02635eb8
commit 04bee0af2e
29 changed files with 142 additions and 41 deletions

View File

@ -22,7 +22,7 @@
#include <welcome_copyright_notice.h> /* ORACLE_WELCOME_COPYRIGHT_NOTICE */
#define VER "1.3"
#define VER "1.3a"
#ifdef HAVE_SYS_WAIT_H
#include <sys/wait.h>
@ -164,6 +164,15 @@ static struct my_option my_long_options[]=
};
static const char *load_default_groups[]=
{
"client", /* Read settings how to connect to server */
"mysql_upgrade", /* Read special settings for mysql_upgrade */
"client-server", /* Reads settings common between client & server */
"client-mariadb", /* Read mariadb unique client settings */
0
};
static void free_used_memory(void)
{
/* Free memory allocated by 'load_defaults' */
@ -180,6 +189,7 @@ static void die(const char *fmt, ...)
DBUG_ENTER("die");
/* Print the error message */
fflush(stdout);
va_start(args, fmt);
if (fmt)
{
@ -259,8 +269,11 @@ get_one_option(int optid, const struct my_option *opt,
printf("%s Ver %s Distrib %s, for %s (%s)\n",
my_progname, VER, MYSQL_SERVER_VERSION, SYSTEM_TYPE, MACHINE_TYPE);
puts(ORACLE_WELCOME_COPYRIGHT_NOTICE("2000"));
puts("MariaDB utility for upgrading databases to new MariaDB versions.\n");
puts("MariaDB utility for upgrading databases to new MariaDB versions.");
print_defaults("my", load_default_groups);
puts("");
my_print_help(my_long_options);
my_print_variables(my_long_options);
die(0);
break;
@ -736,6 +749,7 @@ static int run_mysqlcheck_upgrade(void)
!opt_silent || opt_verbose ? "--verbose": "",
opt_silent ? "--silent": "",
opt_write_binlog ? "--write-binlog" : "--skip-write-binlog",
"2>&1",
NULL);
}
@ -754,6 +768,7 @@ static int run_mysqlcheck_fixnames(void)
opt_verbose ? "--verbose": "",
opt_silent ? "--silent": "",
opt_write_binlog ? "--write-binlog" : "--skip-write-binlog",
"2>&1",
NULL);
}
@ -855,14 +870,11 @@ static int run_sql_fix_privilege_tables(void)
}
static const char *load_default_groups[]=
static void print_error(const char *error_msg, DYNAMIC_STRING *output)
{
"client", /* Read settings how to connect to server */
"mysql_upgrade", /* Read special settings for mysql_upgrade */
"client-server", /* Reads settings common between client & server */
"client-mariadb", /* Read mariadb unique client settings */
0
};
fprintf(stderr, "%s\n", error_msg);
fprintf(stderr, "%s", output->str);
}
/* Convert the specified version string into the numeric format. */
@ -895,6 +907,8 @@ static int check_version_match(void)
&ds_version, FALSE) ||
extract_variable_from_show(&ds_version, version_str))
{
print_error("Version check failed. Got the following error when calling "
"the 'mysql' command line client", &ds_version);
dynstr_free(&ds_version);
return 1; /* Query failed */
}
@ -963,7 +977,8 @@ int main(int argc, char **argv)
}
else
{
printf("The --upgrade-system-tables option was used, databases won't be touched.\n");
if (!opt_silent)
printf("The --upgrade-system-tables option was used, databases won't be touched.\n");
}
/*