Loading client/mysqldump.c +456 −440 Original line number Diff line number Diff line Loading @@ -129,8 +129,8 @@ static const char *mysql_universal_client_charset= static char *default_charset; static CHARSET_INFO *charset_info= &my_charset_latin1; const char *default_dbug_option="d:t:o,/tmp/mysqldump.trace"; /* do we met VIEWs during tables scaning */ my_bool was_views= 0; /* have we seen any VIEWs during table scanning? */ my_bool seen_views= 0; const char *compatible_mode_names[]= { Loading Loading @@ -1388,7 +1388,7 @@ static uint dump_routines_for_db(char *db) ARGS table - table name db - db name table_type - table type ie "InnoDB" table_type - table type, e.g. "MyISAM" or "InnoDB", but also "VIEW" ignore_flag - what we must particularly ignore - see IGNORE_ defines above RETURN Loading Loading @@ -1480,13 +1480,22 @@ static uint get_table_structure(char *table, char *db, char *table_type, } if (!opt_xml && opt_comments) { if (strcmp (table_type, "VIEW") == 0) /* view */ fprintf(sql_file, "\n--\n-- Temporary table structure for view %s\n--\n\n", result_table); else fprintf(sql_file, "\n--\n-- Table structure for table %s\n--\n\n", result_table); check_io(sql_file); } if (opt_drop) { fprintf(sql_file, "DROP TABLE IF EXISTS %s;\n", opt_quoted_table); /* Even if the "table" is a view, we do a DROP TABLE here. The view-specific code below fills in the DROP VIEW. */ fprintf(sql_file, "DROP TABLE IF EXISTS %s;\n", opt_quoted_table); check_io(sql_file); } Loading Loading @@ -1524,10 +1533,13 @@ static uint get_table_structure(char *table, char *db, char *table_type, { if (opt_drop) { /* We have already dropped any table of the same name above, so here we just drop the view. */ fprintf(sql_file, "/*!50001 DROP VIEW IF EXISTS %s*/;\n", opt_quoted_table); fprintf(sql_file, "/*!50001 DROP TABLE IF EXISTS %s*/;\n", opt_quoted_table); check_io(sql_file); } Loading @@ -1554,7 +1566,7 @@ static uint get_table_structure(char *table, char *db, char *table_type, } mysql_free_result(result); was_views= 1; seen_views= 1; DBUG_RETURN(0); } Loading Loading @@ -2053,6 +2065,12 @@ static void dump_table(char *table, char *db) */ num_fields= get_table_structure(table, db, table_type, &ignore_flag); /* The "table" could be a view. If so, we don't do anything here. */ if (strcmp (table_type, "VIEW") == 0) return; /* Check --no-data flag */ if (dFlag) { Loading Loading @@ -2538,7 +2556,7 @@ static int dump_all_databases() if (dump_all_tables_in_db(row[0])) result=1; } if (was_views) if (seen_views) { if (mysql_query(sock, "SHOW DATABASES") || !(tableres = mysql_store_result(sock))) Loading Loading @@ -2567,7 +2585,7 @@ static int dump_databases(char **db_names) if (dump_all_tables_in_db(*db)) result=1; } if (!result && was_views) if (!result && seen_views) { for (db= db_names ; *db ; db++) { Loading Loading @@ -2741,8 +2759,6 @@ static my_bool dump_all_views_in_db(char *database) uint numrows; char table_buff[NAME_LEN*2+3]; if (init_dumping(database)) return 1; if (opt_xml) print_xml_tag1(md_result_file, "", "database name=", database, "\n"); if (lock_tables) Loading Loading @@ -2896,7 +2912,7 @@ static int dump_selected_tables(char *db, char **table_names, int tables) } /* Dump each selected view */ if (was_views) if (seen_views) { for (pos= dump_tables; pos < end; pos++) get_view_structure(*pos, db); Loading Loading @@ -3354,7 +3370,7 @@ static my_bool get_view_structure(char *table, char* db) if (!opt_xml && opt_comments) { fprintf(sql_file, "\n--\n-- View structure for view %s\n--\n\n", fprintf(sql_file, "\n--\n-- Final view structure for view %s\n--\n\n", result_table); check_io(sql_file); } Loading include/my_global.h +3 −0 Original line number Diff line number Diff line Loading @@ -735,6 +735,9 @@ typedef SOCKET_SIZE_TYPE size_socket; #define DBL_MAX 1.79769313486231470e+308 #define FLT_MAX ((float)3.40282346638528860e+38) #endif #ifndef SSIZE_MAX #define SSIZE_MAX ((~((size_t) 0)) / 2) #endif #if !defined(HAVE_ISINF) && !defined(isinf) #define isinf(X) 0 Loading innobase/row/row0mysql.c +10 −10 Original line number Diff line number Diff line Loading @@ -2570,14 +2570,14 @@ do not allow the discard. We also reserve the data dictionary latch. */ } } funct_exit: trx_commit_for_mysql(trx); row_mysql_unlock_data_dictionary(trx); if (graph) { que_graph_free(graph); } trx_commit_for_mysql(trx); trx->op_info = ""; return((int) err); Loading Loading @@ -2707,10 +2707,10 @@ row_import_tablespace_for_mysql( } funct_exit: row_mysql_unlock_data_dictionary(trx); trx_commit_for_mysql(trx); row_mysql_unlock_data_dictionary(trx); trx->op_info = ""; return((int) err); Loading Loading @@ -3398,6 +3398,8 @@ fputs(" InnoDB: You are trying to drop table ", stderr); } funct_exit: trx_commit_for_mysql(trx); if (locked_dictionary) { row_mysql_unlock_data_dictionary(trx); } Loading @@ -3408,8 +3410,6 @@ fputs(" InnoDB: You are trying to drop table ", stderr); que_graph_free(graph); trx_commit_for_mysql(trx); trx->op_info = ""; #ifndef UNIV_HOTBACKUP Loading Loading @@ -3488,10 +3488,10 @@ row_drop_database_for_mysql( } } row_mysql_unlock_data_dictionary(trx); trx_commit_for_mysql(trx); row_mysql_unlock_data_dictionary(trx); trx->op_info = ""; return(err); Loading Loading @@ -3905,6 +3905,8 @@ row_rename_table_for_mysql( } } funct_exit: trx_commit_for_mysql(trx); if (!recovering_temp_table) { row_mysql_unlock_data_dictionary(trx); } Loading @@ -3917,8 +3919,6 @@ row_rename_table_for_mysql( mem_heap_free(heap); } trx_commit_for_mysql(trx); trx->op_info = ""; return((int) err); Loading innobase/row/row0sel.c +2 −1 Original line number Diff line number Diff line Loading @@ -1064,11 +1064,12 @@ row_sel_try_search_shortcut( ut_ad(plan->pcur.latch_mode == node->latch_mode); plan->n_rows_fetched++; ret = SEL_FOUND; func_exit: if (UNIV_LIKELY_NULL(heap)) { mem_heap_free(heap); } return(SEL_FOUND); return(ret); } /************************************************************************* Loading mysql-test/lib/mtr_process.pl +13 −4 Original line number Diff line number Diff line Loading @@ -890,19 +890,28 @@ sub mtr_kill_processes ($) { sub mtr_kill_process ($$$$) { my $pid= shift; my $signal= shift; my $retries= shift; my $total_retries= shift; my $timeout= shift; while (1) for (my $cur_attempt= 1; $cur_attempt <= $total_retries; ++$cur_attempt) { mtr_debug("Sending $signal to $pid..."); kill($signal, $pid); last unless kill (0, $pid) and $retries--; unless (kill (0, $pid)) { mtr_debug("Process $pid died."); return; } mtr_debug("Sleep $timeout second waiting for processes to die"); mtr_debug("Sleeping $timeout second(s) waiting for processes to die..."); sleep($timeout); } mtr_debug("Process $pid is still alive after $total_retries " . "of sending signal $signal."); } ############################################################################## Loading Loading
client/mysqldump.c +456 −440 Original line number Diff line number Diff line Loading @@ -129,8 +129,8 @@ static const char *mysql_universal_client_charset= static char *default_charset; static CHARSET_INFO *charset_info= &my_charset_latin1; const char *default_dbug_option="d:t:o,/tmp/mysqldump.trace"; /* do we met VIEWs during tables scaning */ my_bool was_views= 0; /* have we seen any VIEWs during table scanning? */ my_bool seen_views= 0; const char *compatible_mode_names[]= { Loading Loading @@ -1388,7 +1388,7 @@ static uint dump_routines_for_db(char *db) ARGS table - table name db - db name table_type - table type ie "InnoDB" table_type - table type, e.g. "MyISAM" or "InnoDB", but also "VIEW" ignore_flag - what we must particularly ignore - see IGNORE_ defines above RETURN Loading Loading @@ -1480,13 +1480,22 @@ static uint get_table_structure(char *table, char *db, char *table_type, } if (!opt_xml && opt_comments) { if (strcmp (table_type, "VIEW") == 0) /* view */ fprintf(sql_file, "\n--\n-- Temporary table structure for view %s\n--\n\n", result_table); else fprintf(sql_file, "\n--\n-- Table structure for table %s\n--\n\n", result_table); check_io(sql_file); } if (opt_drop) { fprintf(sql_file, "DROP TABLE IF EXISTS %s;\n", opt_quoted_table); /* Even if the "table" is a view, we do a DROP TABLE here. The view-specific code below fills in the DROP VIEW. */ fprintf(sql_file, "DROP TABLE IF EXISTS %s;\n", opt_quoted_table); check_io(sql_file); } Loading Loading @@ -1524,10 +1533,13 @@ static uint get_table_structure(char *table, char *db, char *table_type, { if (opt_drop) { /* We have already dropped any table of the same name above, so here we just drop the view. */ fprintf(sql_file, "/*!50001 DROP VIEW IF EXISTS %s*/;\n", opt_quoted_table); fprintf(sql_file, "/*!50001 DROP TABLE IF EXISTS %s*/;\n", opt_quoted_table); check_io(sql_file); } Loading @@ -1554,7 +1566,7 @@ static uint get_table_structure(char *table, char *db, char *table_type, } mysql_free_result(result); was_views= 1; seen_views= 1; DBUG_RETURN(0); } Loading Loading @@ -2053,6 +2065,12 @@ static void dump_table(char *table, char *db) */ num_fields= get_table_structure(table, db, table_type, &ignore_flag); /* The "table" could be a view. If so, we don't do anything here. */ if (strcmp (table_type, "VIEW") == 0) return; /* Check --no-data flag */ if (dFlag) { Loading Loading @@ -2538,7 +2556,7 @@ static int dump_all_databases() if (dump_all_tables_in_db(row[0])) result=1; } if (was_views) if (seen_views) { if (mysql_query(sock, "SHOW DATABASES") || !(tableres = mysql_store_result(sock))) Loading Loading @@ -2567,7 +2585,7 @@ static int dump_databases(char **db_names) if (dump_all_tables_in_db(*db)) result=1; } if (!result && was_views) if (!result && seen_views) { for (db= db_names ; *db ; db++) { Loading Loading @@ -2741,8 +2759,6 @@ static my_bool dump_all_views_in_db(char *database) uint numrows; char table_buff[NAME_LEN*2+3]; if (init_dumping(database)) return 1; if (opt_xml) print_xml_tag1(md_result_file, "", "database name=", database, "\n"); if (lock_tables) Loading Loading @@ -2896,7 +2912,7 @@ static int dump_selected_tables(char *db, char **table_names, int tables) } /* Dump each selected view */ if (was_views) if (seen_views) { for (pos= dump_tables; pos < end; pos++) get_view_structure(*pos, db); Loading Loading @@ -3354,7 +3370,7 @@ static my_bool get_view_structure(char *table, char* db) if (!opt_xml && opt_comments) { fprintf(sql_file, "\n--\n-- View structure for view %s\n--\n\n", fprintf(sql_file, "\n--\n-- Final view structure for view %s\n--\n\n", result_table); check_io(sql_file); } Loading
include/my_global.h +3 −0 Original line number Diff line number Diff line Loading @@ -735,6 +735,9 @@ typedef SOCKET_SIZE_TYPE size_socket; #define DBL_MAX 1.79769313486231470e+308 #define FLT_MAX ((float)3.40282346638528860e+38) #endif #ifndef SSIZE_MAX #define SSIZE_MAX ((~((size_t) 0)) / 2) #endif #if !defined(HAVE_ISINF) && !defined(isinf) #define isinf(X) 0 Loading
innobase/row/row0mysql.c +10 −10 Original line number Diff line number Diff line Loading @@ -2570,14 +2570,14 @@ do not allow the discard. We also reserve the data dictionary latch. */ } } funct_exit: trx_commit_for_mysql(trx); row_mysql_unlock_data_dictionary(trx); if (graph) { que_graph_free(graph); } trx_commit_for_mysql(trx); trx->op_info = ""; return((int) err); Loading Loading @@ -2707,10 +2707,10 @@ row_import_tablespace_for_mysql( } funct_exit: row_mysql_unlock_data_dictionary(trx); trx_commit_for_mysql(trx); row_mysql_unlock_data_dictionary(trx); trx->op_info = ""; return((int) err); Loading Loading @@ -3398,6 +3398,8 @@ fputs(" InnoDB: You are trying to drop table ", stderr); } funct_exit: trx_commit_for_mysql(trx); if (locked_dictionary) { row_mysql_unlock_data_dictionary(trx); } Loading @@ -3408,8 +3410,6 @@ fputs(" InnoDB: You are trying to drop table ", stderr); que_graph_free(graph); trx_commit_for_mysql(trx); trx->op_info = ""; #ifndef UNIV_HOTBACKUP Loading Loading @@ -3488,10 +3488,10 @@ row_drop_database_for_mysql( } } row_mysql_unlock_data_dictionary(trx); trx_commit_for_mysql(trx); row_mysql_unlock_data_dictionary(trx); trx->op_info = ""; return(err); Loading Loading @@ -3905,6 +3905,8 @@ row_rename_table_for_mysql( } } funct_exit: trx_commit_for_mysql(trx); if (!recovering_temp_table) { row_mysql_unlock_data_dictionary(trx); } Loading @@ -3917,8 +3919,6 @@ row_rename_table_for_mysql( mem_heap_free(heap); } trx_commit_for_mysql(trx); trx->op_info = ""; return((int) err); Loading
innobase/row/row0sel.c +2 −1 Original line number Diff line number Diff line Loading @@ -1064,11 +1064,12 @@ row_sel_try_search_shortcut( ut_ad(plan->pcur.latch_mode == node->latch_mode); plan->n_rows_fetched++; ret = SEL_FOUND; func_exit: if (UNIV_LIKELY_NULL(heap)) { mem_heap_free(heap); } return(SEL_FOUND); return(ret); } /************************************************************************* Loading
mysql-test/lib/mtr_process.pl +13 −4 Original line number Diff line number Diff line Loading @@ -890,19 +890,28 @@ sub mtr_kill_processes ($) { sub mtr_kill_process ($$$$) { my $pid= shift; my $signal= shift; my $retries= shift; my $total_retries= shift; my $timeout= shift; while (1) for (my $cur_attempt= 1; $cur_attempt <= $total_retries; ++$cur_attempt) { mtr_debug("Sending $signal to $pid..."); kill($signal, $pid); last unless kill (0, $pid) and $retries--; unless (kill (0, $pid)) { mtr_debug("Process $pid died."); return; } mtr_debug("Sleep $timeout second waiting for processes to die"); mtr_debug("Sleeping $timeout second(s) waiting for processes to die..."); sleep($timeout); } mtr_debug("Process $pid is still alive after $total_retries " . "of sending signal $signal."); } ############################################################################## Loading