Commit e506cef8 authored by unknown's avatar unknown

mysqldump now adds "ALTER TABLE ... DISABLE KEYS" to the dump

manual updated


Docs/manual.texi:
  mysqldump, News, Upgrading entires updated
client/mysqldump.c:
  "ALTER TABLE ... DISABLE KEYS" is added to the dump.
  Invisible spaces deleted :-)
parent 6a39d321
...@@ -8050,6 +8050,10 @@ version 4.0; ...@@ -8050,6 +8050,10 @@ version 4.0;
@itemize @bullet @itemize @bullet
@item @item
To use @code{MATCH ... AGAINST (... IN BOOLEAN MODE)} with your tables,
you need to rebuild them with @code{ALTER TABLE table_name TYPE=MyISAM},
@strong{even} if they are of @code{MyISAM} type.
@item
@code{LOCATE()} and @code{INSTR()} are case sensitive if neither @code{LOCATE()} and @code{INSTR()} are case sensitive if neither
argument is a binary string. argument is a binary string.
@item @item
...@@ -22089,8 +22093,12 @@ is @code{localhost}. ...@@ -22089,8 +22093,12 @@ is @code{localhost}.
Lock all tables before starting the dump. The tables are locked with Lock all tables before starting the dump. The tables are locked with
@code{READ LOCAL} to allow concurrent inserts in the case of @code{MyISAM} @code{READ LOCAL} to allow concurrent inserts in the case of @code{MyISAM}
tables. tables.
@item -K, --no-disable-keys.
@code{/*!40000 ALTER TABLE tb_name DISABLE KEYS */;} and
@code{/*!40000 ALTER TABLE tb_name ENABLE KEYS */;}
will not be put in the output.
@item -n, --no-create-db @item -n, --no-create-db
'CREATE DATABASE /*!32312 IF NOT EXISTS*/ db_name;' will not be put in the @code{CREATE DATABASE /*!32312 IF NOT EXISTS*/ db_name;} will not be put in the
output. The above line will be added otherwise, if --databases or output. The above line will be added otherwise, if --databases or
--all-databases option was given. --all-databases option was given.
@item -t, --no-create-info @item -t, --no-create-info
...@@ -22139,6 +22147,10 @@ Verbose mode. Print out more information on what the program does. ...@@ -22139,6 +22147,10 @@ Verbose mode. Print out more information on what the program does.
Print version information and exit. Print version information and exit.
@item -w, --where='where-condition' @item -w, --where='where-condition'
Dump only selected records. Note that quotes are mandatory: Dump only selected records. Note that quotes are mandatory:
@item -X, --xml
Dumps a database as well formed XML
@item -x, --first-slave
Locks all tables across all databases.
@example @example
"--where=user='jimf'" "-wuserid>1" "-wuserid<1" "--where=user='jimf'" "-wuserid>1" "-wuserid<1"
...@@ -47795,6 +47807,11 @@ Our TODO section contains what we plan to have in 4.0. @xref{TODO MySQL 4.0}. ...@@ -47795,6 +47807,11 @@ Our TODO section contains what we plan to have in 4.0. @xref{TODO MySQL 4.0}.
@itemize @bullet @itemize @bullet
@item @item
@code{mysqldump} now puts @code{ALTER TABLE table_name DISABLE KEYS} and
@code{ALTER TABLE table_name DISABLE KEYS} in the sql dump.
@item
Added @code{mysql_fix_extensions} script
@item
Added functions @code{des_encrypt()} and @code{des_decrypt()}. Added functions @code{des_encrypt()} and @code{des_decrypt()}.
@item @item
Added statement FLUSH DES_KEY_FILE. Added statement FLUSH DES_KEY_FILE.
...@@ -73,7 +73,7 @@ static my_bool verbose=0,tFlag=0,cFlag=0,dFlag=0,quick=0, extended_insert = 0, ...@@ -73,7 +73,7 @@ static my_bool verbose=0,tFlag=0,cFlag=0,dFlag=0,quick=0, extended_insert = 0,
ignore=0,opt_drop=0,opt_keywords=0,opt_lock=0,opt_compress=0, ignore=0,opt_drop=0,opt_keywords=0,opt_lock=0,opt_compress=0,
opt_delayed=0,create_options=0,opt_quoted=0,opt_databases=0, opt_delayed=0,create_options=0,opt_quoted=0,opt_databases=0,
opt_alldbs=0,opt_create_db=0,opt_first_slave=0, opt_alldbs=0,opt_create_db=0,opt_first_slave=0,
opt_autocommit=0, opt_master_data, opt_xml=0; opt_autocommit=0,opt_master_data,opt_disable_keys=0,opt_xml=0;
static MYSQL mysql_connection,*sock=0; static MYSQL mysql_connection,*sock=0;
static char insert_pat[12 * 1024],*opt_password=0,*current_user=0, static char insert_pat[12 * 1024],*opt_password=0,*current_user=0,
*current_host=0,*path=0,*fields_terminated=0, *current_host=0,*path=0,*fields_terminated=0,
...@@ -118,6 +118,7 @@ static struct option long_options[] = ...@@ -118,6 +118,7 @@ static struct option long_options[] =
{"no-create-db", no_argument, 0, 'n'}, {"no-create-db", no_argument, 0, 'n'},
{"no-create-info", no_argument, 0, 't'}, {"no-create-info", no_argument, 0, 't'},
{"no-data", no_argument, 0, 'd'}, {"no-data", no_argument, 0, 'd'},
{"no-disable-keys", no_argument, 0, 'K'},
{"opt", no_argument, 0, OPT_OPTIMIZE}, {"opt", no_argument, 0, OPT_OPTIMIZE},
{"password", optional_argument, 0, 'p'}, {"password", optional_argument, 0, 'p'},
#ifdef __WIN__ #ifdef __WIN__
...@@ -214,6 +215,9 @@ static void usage(void) ...@@ -214,6 +215,9 @@ static void usage(void)
puts("\ puts("\
-l, --lock-tables Lock all tables for read.\n\ -l, --lock-tables Lock all tables for read.\n\
--no-autocommit Wrap tables with autocommit/commit statements.\n\ --no-autocommit Wrap tables with autocommit/commit statements.\n\
-K, --no-disable-keys '/*!40000 ALTER TABLE tb_name DISABLE KEYS */;\n\
and '/*!40000 ALTER TABLE tb_name ENABLE KEYS */;\n\
will not be put in the output.\n\
-n, --no-create-db 'CREATE DATABASE /*!32312 IF NOT EXISTS*/ db_name;'\n\ -n, --no-create-db 'CREATE DATABASE /*!32312 IF NOT EXISTS*/ db_name;'\n\
will not be put in the output. The above line will\n\ will not be put in the output. The above line will\n\
be added otherwise, if --databases or\n\ be added otherwise, if --databases or\n\
...@@ -305,7 +309,7 @@ static int get_options(int *argc,char ***argv) ...@@ -305,7 +309,7 @@ static int get_options(int *argc,char ***argv)
load_defaults("my",load_default_groups,argc,argv); load_defaults("my",load_default_groups,argc,argv);
set_all_changeable_vars(md_changeable_vars); set_all_changeable_vars(md_changeable_vars);
while ((c=getopt_long(*argc,*argv, while ((c=getopt_long(*argc,*argv,
"#::p::h:u:O:P:r:S:T:EBaAcCdefFlnqtvVw:?IxX", "#::p::h:u:O:P:r:S:T:EBaAcCdefFKlnqtvVw:?IxX",
long_options, &option_index)) != EOF) long_options, &option_index)) != EOF)
{ {
switch(c) { switch(c) {
...@@ -341,6 +345,9 @@ static int get_options(int *argc,char ***argv) ...@@ -341,6 +345,9 @@ static int get_options(int *argc,char ***argv)
my_free(current_host,MYF(MY_ALLOW_ZERO_PTR)); my_free(current_host,MYF(MY_ALLOW_ZERO_PTR));
current_host=my_strdup(optarg,MYF(MY_WME)); current_host=my_strdup(optarg,MYF(MY_WME));
break; break;
case 'K':
opt_disable_keys=1;
break;
case 'n': case 'n':
opt_create_db = 1; opt_create_db = 1;
break; break;
...@@ -408,7 +415,7 @@ static int get_options(int *argc,char ***argv) ...@@ -408,7 +415,7 @@ static int get_options(int *argc,char ***argv)
case 'w': case 'w':
where=optarg; where=optarg;
break; break;
case 'X': opt_xml = 1; break; case 'X': opt_xml = 1; opt_disable_keys=1; break;
case 'x': case 'x':
opt_first_slave=1; opt_first_slave=1;
break; break;
...@@ -883,6 +890,8 @@ static uint getTableStructure(char *table, char* db) ...@@ -883,6 +890,8 @@ static uint getTableStructure(char *table, char* db)
fputs(";\n", sql_file); fputs(";\n", sql_file);
} }
} }
if (!opt_disable_keys)
fprintf(sql_file,"\n/*!40000 ALTER TABLE %s DISABLE KEYS */;\n",table_name);
if (cFlag) if (cFlag)
{ {
strpos=strmov(strpos,") VALUES "); strpos=strmov(strpos,") VALUES ");
...@@ -982,7 +991,7 @@ static void dumpTable(uint numFields, char *table) ...@@ -982,7 +991,7 @@ static void dumpTable(uint numFields, char *table)
end= add_load_option(end, lines_terminated, " LINES TERMINATED BY"); end= add_load_option(end, lines_terminated, " LINES TERMINATED BY");
*end= '\0'; *end= '\0';
sprintf(buff," FROM %s",table); sprintf(buff," FROM %s",quote_name(table,table_buff));
end= strmov(end,buff); end= strmov(end,buff);
if (where) if (where)
end= strxmov(end, " WHERE ",where,NullS); end= strxmov(end, " WHERE ",where,NullS);
...@@ -1189,6 +1198,9 @@ static void dumpTable(uint numFields, char *table) ...@@ -1189,6 +1198,9 @@ static void dumpTable(uint numFields, char *table)
safe_exit(EX_CONSCHECK); safe_exit(EX_CONSCHECK);
return; return;
} }
if (!opt_disable_keys)
fprintf(md_result_file,"\n/*!40000 ALTER TABLE %s ENABLE KEYS */;\n",
quote_name(table,table_buff));
if (opt_lock) if (opt_lock)
fputs("UNLOCK TABLES;\n", md_result_file); fputs("UNLOCK TABLES;\n", md_result_file);
if (opt_autocommit) if (opt_autocommit)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment