summaryrefslogtreecommitdiff
path: root/client/mysqldump.c
diff options
context:
space:
mode:
authorunknown <monty@mysql.com>2005-07-03 14:17:52 +0300
committerunknown <monty@mysql.com>2005-07-03 14:17:52 +0300
commiteeee5fb10b59f6580ebcb08ebd82d0b75c66aa8f (patch)
treebf06496ea5d097316e5972a5cf4c4d5f674fb90b /client/mysqldump.c
parent6d9bc9c8b71acd82aa79ae580271e7dc4012e5a4 (diff)
parentc7ab92c28a535d2419ffa906042fff7e476df972 (diff)
downloadmariadb-git-eeee5fb10b59f6580ebcb08ebd82d0b75c66aa8f.tar.gz
Merge with 4.1
Makefile.am: Auto merged myisam/mi_create.c: Auto merged myisam/mi_open.c: Auto merged mysql-test/r/ctype_utf8.result: Auto merged mysys/thr_alarm.c: Auto merged VC++Files/sql/mysqld.dsp: Keep old client/mysqldump.c: Manual merge client/mysqltest.c: Automatic merge configure.in: Manual merge mysql-test/r/ctype_ucs.result: Auto merge mysql-test/r/func_str.result: Auto merge mysql-test/r/group_by.result: Auto merge mysql-test/r/insert_select.result: Auto merge mysql-test/r/insert_update.result: Auto merge mysql-test/r/lowercase_table2.result: Auto merge mysql-test/r/select.result: Manual merge mysql-test/r/variables.result: Auto merge mysql-test/t/ctype_ucs.test: Auto merge mysql-test/t/func_str.test: Auto merge mysql-test/t/group_by.test: Auto merge mysql-test/t/insert_select.test: Auto merge mysql-test/t/insert_update.test: Auto merge mysql-test/t/ndb_alter_table.test: Auto merge mysql-test/t/select.test: Auto merge mysql-test/t/variables.test: Auto merge mysys/my_access.c: Auto merge scripts/make_win_src_distribution.sh: Auto merge sql/field.cc: Manual merge sql/ha_ndbcluster.cc: Auto merge sql/handler.cc: Auto merge sql/item.cc: Auto merge sql/item.h: Manual merge sql/item_cmpfunc.h: Auto merge sql/item_strfunc.cc: Auto merge sql/item_strfunc.h: Auto merge sql/mysql_priv.h: manual merge sql/mysqld.cc: manual merge sql/opt_range.cc: manual merge sql/set_var.cc: Auto merge sql/sql_base.cc: manual merge Restore processing of ON DUPLICATE KEY UPDATE sql/sql_insert.cc: manual merge Restore processing of ON DUPLICATE KEY UPDATE Simplify mysql_prepare_insert by using local variable for select_lex and save old values just before they are changed sql/sql_parse.cc: Restore processing of ON DUPLICATE KEY UPDATE sql/sql_prepare.cc: New ON DUPLICATE KEY UPDATE handling sql/sql_select.cc: manual merge sql/sql_table.cc: auto merge sql/sql_yacc.yy: auto merge strings/ctype-ucs2.c: auto merge strings/ctype-utf8.c: auto merge
Diffstat (limited to 'client/mysqldump.c')
-rw-r--r--client/mysqldump.c37
1 files changed, 24 insertions, 13 deletions
diff --git a/client/mysqldump.c b/client/mysqldump.c
index 1f520243c7c..b2bf23c3e3a 100644
--- a/client/mysqldump.c
+++ b/client/mysqldump.c
@@ -539,6 +539,12 @@ static void write_footer(FILE *sql_file)
}
} /* write_footer */
+static void free_table_ent(char *key)
+
+{
+ my_free((gptr) key, MYF(0));
+}
+
byte* get_table_key(const char *entry, uint *length,
my_bool not_used __attribute__((unused)))
@@ -550,8 +556,9 @@ byte* get_table_key(const char *entry, uint *length,
void init_table_rule_hash(HASH* h)
{
- if(hash_init(h, charset_info, 16, 0, 0,
- (hash_get_key) get_table_key, 0, 0))
+ if (hash_init(h, charset_info, 16, 0, 0,
+ (hash_get_key) get_table_key,
+ (hash_free_key) free_table_ent, 0))
exit(EX_EOM);
}
@@ -806,7 +813,8 @@ static void DB_error(MYSQL *mysql, const char *when)
SYNOPSIS
mysql_query_with_error_report()
mysql_con connection to use
- res if non zero, result will be put there with mysql_store_result
+ res if non zero, result will be put there with
+ mysql_store_result()
query query to send to server
RETURN VALUES
@@ -958,13 +966,14 @@ static char *quote_name(const char *name, char *buff, my_bool force)
return buff;
} /* quote_name */
+
/*
Quote a table name so it can be used in "SHOW TABLES LIKE <tabname>"
SYNOPSIS
- quote_for_like
- name - name of the table
- buff - quoted name of the table
+ quote_for_like()
+ name name of the table
+ buff quoted name of the table
DESCRIPTION
Quote \, _, ' and % characters
@@ -980,7 +989,6 @@ static char *quote_name(const char *name, char *buff, my_bool force)
Example: "t\1" => "t\\\\1"
*/
-
static char *quote_for_like(const char *name, char *buff)
{
char *to= buff;
@@ -1690,7 +1698,7 @@ static void dump_table(uint numFields, char *table)
}
/* Check that there are any fields in the table */
- if(numFields == 0)
+ if (numFields == 0)
{
if (verbose)
fprintf(stderr,
@@ -2446,7 +2454,6 @@ static int dump_selected_tables(char *db, char **table_names, int tables)
DYNAMIC_STRING lock_tables_query;
HASH dump_tables;
char *table_name;
-
DBUG_ENTER("dump_selected_tables");
if (init_dumping(db))
@@ -2454,15 +2461,16 @@ static int dump_selected_tables(char *db, char **table_names, int tables)
/* Init hash table for storing the actual name of tables to dump */
if (hash_init(&dump_tables, charset_info, 16, 0, 0,
- (hash_get_key) get_table_key, 0, 0))
+ (hash_get_key) get_table_key, (hash_free_key) free_table_ent,
+ 0))
exit(EX_EOM);
init_dynamic_string(&lock_tables_query, "LOCK TABLES ", 256, 1024);
for (; tables > 0 ; tables-- , table_names++)
{
/* the table name passed on commandline may be wrong case */
- if (!get_actual_table_name( *table_names,
- new_table_name, sizeof(new_table_name) ))
+ if (!get_actual_table_name(*table_names,
+ new_table_name, sizeof(new_table_name)))
{
/* Add found table name to lock_tables_query */
if (lock_tables)
@@ -2509,7 +2517,7 @@ static int dump_selected_tables(char *db, char **table_names, int tables)
{
table_name= hash_element(&dump_tables, i);
DBUG_PRINT("info",("Dumping table %s", table_name));
- numrows = get_table_structure(table_name, db);
+ numrows= get_table_structure(table_name, db);
dump_table(numrows, table_name);
}
@@ -2926,6 +2934,7 @@ int main(int argc, char **argv)
{
compatible_mode_normal_str[0]= 0;
default_charset= (char *)mysql_universal_client_charset;
+ bzero((char*) &ignore_table, sizeof(ignore_table));
MY_INIT("mysqldump");
if (get_options(&argc, &argv))
@@ -2984,6 +2993,8 @@ err:
if (md_result_file != stdout)
my_fclose(md_result_file, MYF(0));
my_free(opt_password, MYF(MY_ALLOW_ZERO_PTR));
+ if (hash_inited(&ignore_table))
+ hash_free(&ignore_table);
if (extended_insert)
dynstr_free(&extended_row);
if (insert_pat_inited)