diff --git a/client/mysqldump.c b/client/mysqldump.c index 6834d16bde7..9f34b2556a9 100644 --- a/client/mysqldump.c +++ b/client/mysqldump.c @@ -4773,7 +4773,7 @@ static int do_show_slave_status(MYSQL *mysql_con) if (row[1]) fprintf(md_result_file, "MASTER_HOST='%s', ", row[1]); if (row[3]) - fprintf(md_result_file, "MASTER_PORT='%s', ", row[3]); + fprintf(md_result_file, "MASTER_PORT=%s, ", row[3]); } fprintf(md_result_file, "MASTER_LOG_FILE='%s', MASTER_LOG_POS=%s;\n", row[9], row[21]); diff --git a/mysql-test/r/rpl_mysqldump_slave.result b/mysql-test/r/rpl_mysqldump_slave.result index 76caab5fcfa..1b13ebb79c1 100644 --- a/mysql-test/r/rpl_mysqldump_slave.result +++ b/mysql-test/r/rpl_mysqldump_slave.result @@ -9,6 +9,6 @@ STOP SLAVE; CHANGE MASTER TO MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=BINLOG_START; START SLAVE; STOP SLAVE; -CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT='MASTER_MYPORT', MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=BINLOG_START; +CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_MYPORT, MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=BINLOG_START; START SLAVE; include/rpl_end.inc diff --git a/mysql-test/suite/sphinx/sphinx.result b/mysql-test/suite/sphinx/sphinx.result index 50f1f513e31..a671028bbe2 100644 --- a/mysql-test/suite/sphinx/sphinx.result +++ b/mysql-test/suite/sphinx/sphinx.result @@ -46,14 +46,17 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE ts ref q q 257 const 3 Using where with pushed condition SET optimizer_switch=@save_optimizer_switch; drop table ts; -show status like "sphinx_%"; +show status like "sphinx_error%"; Variable_name Value sphinx_error_commits 0 sphinx_error_group_commits 0 sphinx_error_snapshot_file sphinx_error_snapshot_position 0 -sphinx_time 0 +show status like "sphinx_total%"; +Variable_name Value sphinx_total 2 sphinx_total_found 2 +show status like "sphinx_word%"; +Variable_name Value sphinx_word_count 0 sphinx_words diff --git a/mysql-test/suite/sphinx/sphinx.test b/mysql-test/suite/sphinx/sphinx.test index bc5daec8fe5..648eec07f63 100644 --- a/mysql-test/suite/sphinx/sphinx.test +++ b/mysql-test/suite/sphinx/sphinx.test @@ -26,4 +26,6 @@ explain select * from ts where q=';groupby=attr:gid'; SET optimizer_switch=@save_optimizer_switch; drop table ts; -show status like "sphinx_%"; +show status like "sphinx_error%"; +show status like "sphinx_total%"; +show status like "sphinx_word%"; diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 13411bea8a3..2a1682aee12 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -7360,7 +7360,10 @@ err: thd_progress_next_stage(thd); if (error > 0) + { + /* We are going to drop the temporary table */ to->file->extra(HA_EXTRA_PREPARE_FOR_DROP); + } if (errpos >= 3 && to->file->ha_end_bulk_insert() && error <= 0) { to->file->print_error(my_errno,MYF(0)); diff --git a/storage/maria/ma_close.c b/storage/maria/ma_close.c index 973adf2b91e..d1b90dc826e 100644 --- a/storage/maria/ma_close.c +++ b/storage/maria/ma_close.c @@ -193,9 +193,10 @@ int maria_close(register MARIA_HA *info) else share_can_be_freed= TRUE; - if (share->state_history) + if (share->state_history && share->state_history->trid) { MARIA_STATE_HISTORY_CLOSED *history; + DBUG_PRINT("info", ("Storing state history")); /* Here we ignore the unlikely case that we don't have memory to store the state. In the worst case what happens is that any transaction diff --git a/storage/maria/ma_delete_table.c b/storage/maria/ma_delete_table.c index 9e91638fa27..09d5cde5ad0 100644 --- a/storage/maria/ma_delete_table.c +++ b/storage/maria/ma_delete_table.c @@ -38,14 +38,8 @@ int maria_delete_table(const char *name) /** @todo LOCK take X-lock on table */ /* We need to know if this table is transactional. - When built with RAID support, we also need to determine if this table - makes use of the raid feature. If yes, we need to remove all raid - chunks. This is done with my_raid_delete(). Unfortunately it is - necessary to open the table just to check this. We use - 'open_for_repair' to be able to open even a crashed table. If even - this open fails, we assume no raid configuration for this table - and try to remove the normal data file only. This may however - leave the raid chunks behind. + Unfortunately it is necessary to open the table just to check this. We use + 'open_for_repair' to be able to open even a crashed table. */ if (!(info= maria_open(name, O_RDONLY, HA_OPEN_FOR_REPAIR))) { @@ -56,6 +50,8 @@ int maria_delete_table(const char *name) sync_dir= (info->s->now_transactional && !info->s->temporary && !maria_in_recovery) ? MY_SYNC_DIR : 0; + /* Remove history for table */ + _ma_reset_state(info); maria_close(info); } diff --git a/storage/maria/ma_info.c b/storage/maria/ma_info.c index 97b5b8b7f7b..341ea147785 100644 --- a/storage/maria/ma_info.c +++ b/storage/maria/ma_info.c @@ -42,6 +42,7 @@ int maria_status(MARIA_HA *info, register MARIA_INFO *x, uint flag) MY_STAT state; MARIA_SHARE *share= info->s; DBUG_ENTER("maria_status"); + DBUG_PRINT("info", ("records: %lld", info->state->records)); x->recpos= info->cur_row.lastpos; if (flag == HA_STATUS_POS) diff --git a/storage/maria/ma_open.c b/storage/maria/ma_open.c index a526c0d4276..5f90f61c786 100644 --- a/storage/maria/ma_open.c +++ b/storage/maria/ma_open.c @@ -866,6 +866,9 @@ MARIA_HA *maria_open(const char *name, int mode, uint open_flags) _ma_remove_not_visible_states(history->state_history, 0, 0); history->state_history= 0; (void) my_hash_delete(&maria_stored_state, (uchar*) history); + DBUG_PRINT("info", ("Reading state history. trid: %lu records: %lld", + (ulong) share->state_history->trid, + share->state_history->state.records)); } else { @@ -988,6 +991,7 @@ MARIA_HA *maria_open(const char *name, int mode, uint open_flags) mysql_mutex_unlock(&THR_LOCK_maria); m_info->open_flags= open_flags; + DBUG_PRINT("exit", ("table: %p name: %s",m_info, name)); DBUG_RETURN(m_info); err: