mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge
This commit is contained in:
@ -2186,6 +2186,38 @@ static my_bool dump_all_views_in_db(char *database)
|
|||||||
return 0;
|
return 0;
|
||||||
} /* dump_all_tables_in_db */
|
} /* dump_all_tables_in_db */
|
||||||
|
|
||||||
|
/*
|
||||||
|
get_actual_table_name -- executes a SHOW TABLES LIKE '%s' to get the actual
|
||||||
|
table name from the server for the table name given on the command line.
|
||||||
|
we do this because the table name given on the command line may be a
|
||||||
|
different case (e.g. T1 vs t1)
|
||||||
|
|
||||||
|
RETURN
|
||||||
|
void
|
||||||
|
*/
|
||||||
|
static void get_actual_table_name( const char *old_table_name,
|
||||||
|
char *new_table_name,
|
||||||
|
int buf_size )
|
||||||
|
{
|
||||||
|
MYSQL_RES *tableRes;
|
||||||
|
MYSQL_ROW row;
|
||||||
|
char query[ NAME_LEN + 50 ];
|
||||||
|
|
||||||
|
DBUG_ENTER("get_actual_table_name");
|
||||||
|
|
||||||
|
sprintf( query, "SHOW TABLES LIKE '%s'", old_table_name );
|
||||||
|
if (mysql_query_with_error_report(sock, 0, query))
|
||||||
|
{
|
||||||
|
safe_exit(EX_MYSQLERR);
|
||||||
|
}
|
||||||
|
|
||||||
|
tableRes = mysql_store_result( sock );
|
||||||
|
row = mysql_fetch_row( tableRes );
|
||||||
|
strncpy( new_table_name, row[0], buf_size );
|
||||||
|
mysql_free_result(tableRes);
|
||||||
|
} /* get_actual_table_name */
|
||||||
|
|
||||||
|
|
||||||
static int dump_selected_tables(char *db, char **table_names, int tables)
|
static int dump_selected_tables(char *db, char **table_names, int tables)
|
||||||
{
|
{
|
||||||
uint numrows;
|
uint numrows;
|
||||||
@ -2219,9 +2251,14 @@ static int dump_selected_tables(char *db, char **table_names, int tables)
|
|||||||
print_xml_tag1(md_result_file, "", "database name=", db, "\n");
|
print_xml_tag1(md_result_file, "", "database name=", db, "\n");
|
||||||
for (i=0 ; i < tables ; i++)
|
for (i=0 ; i < tables ; i++)
|
||||||
{
|
{
|
||||||
numrows = getTableStructure(table_names[i], db);
|
char new_table_name[NAME_LEN];
|
||||||
if (!dFlag && numrows > 0)
|
|
||||||
dumpTable(numrows, table_names[i]);
|
/* the table name passed on commandline may be wrong case */
|
||||||
|
get_actual_table_name( table_names[i], new_table_name, sizeof(new_table_name) );
|
||||||
|
|
||||||
|
numrows = getTableStructure(new_table_name, db);
|
||||||
|
|
||||||
|
dumpTable(numrows, new_table_name);
|
||||||
my_free(order_by, MYF(MY_ALLOW_ZERO_PTR));
|
my_free(order_by, MYF(MY_ALLOW_ZERO_PTR));
|
||||||
order_by= 0;
|
order_by= 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user