Commit c73df610 authored by Michael Widenius's avatar Michael Widenius

Automatic merge

parents 1c5e7cbf 63422883
...@@ -4773,7 +4773,7 @@ static int do_show_slave_status(MYSQL *mysql_con) ...@@ -4773,7 +4773,7 @@ static int do_show_slave_status(MYSQL *mysql_con)
if (row[1]) if (row[1])
fprintf(md_result_file, "MASTER_HOST='%s', ", row[1]); fprintf(md_result_file, "MASTER_HOST='%s', ", row[1]);
if (row[3]) 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, fprintf(md_result_file,
"MASTER_LOG_FILE='%s', MASTER_LOG_POS=%s;\n", row[9], row[21]); "MASTER_LOG_FILE='%s', MASTER_LOG_POS=%s;\n", row[9], row[21]);
......
...@@ -9,6 +9,6 @@ STOP SLAVE; ...@@ -9,6 +9,6 @@ STOP SLAVE;
CHANGE MASTER TO MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=BINLOG_START; CHANGE MASTER TO MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=BINLOG_START;
START SLAVE; START SLAVE;
STOP 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; START SLAVE;
include/rpl_end.inc include/rpl_end.inc
...@@ -46,14 +46,17 @@ id select_type table type possible_keys key key_len ref rows Extra ...@@ -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 1 SIMPLE ts ref q q 257 const 3 Using where with pushed condition
SET optimizer_switch=@save_optimizer_switch; SET optimizer_switch=@save_optimizer_switch;
drop table ts; drop table ts;
show status like "sphinx_%"; show status like "sphinx_error%";
Variable_name Value Variable_name Value
sphinx_error_commits 0 sphinx_error_commits 0
sphinx_error_group_commits 0 sphinx_error_group_commits 0
sphinx_error_snapshot_file sphinx_error_snapshot_file
sphinx_error_snapshot_position 0 sphinx_error_snapshot_position 0
sphinx_time 0 show status like "sphinx_total%";
Variable_name Value
sphinx_total 2 sphinx_total 2
sphinx_total_found 2 sphinx_total_found 2
show status like "sphinx_word%";
Variable_name Value
sphinx_word_count 0 sphinx_word_count 0
sphinx_words sphinx_words
...@@ -26,4 +26,6 @@ explain select * from ts where q=';groupby=attr:gid'; ...@@ -26,4 +26,6 @@ explain select * from ts where q=';groupby=attr:gid';
SET optimizer_switch=@save_optimizer_switch; SET optimizer_switch=@save_optimizer_switch;
drop table ts; drop table ts;
show status like "sphinx_%"; show status like "sphinx_error%";
show status like "sphinx_total%";
show status like "sphinx_word%";
...@@ -7360,7 +7360,10 @@ copy_data_between_tables(THD *thd, TABLE *from,TABLE *to, ...@@ -7360,7 +7360,10 @@ copy_data_between_tables(THD *thd, TABLE *from,TABLE *to,
thd_progress_next_stage(thd); thd_progress_next_stage(thd);
if (error > 0) if (error > 0)
{
/* We are going to drop the temporary table */
to->file->extra(HA_EXTRA_PREPARE_FOR_DROP); to->file->extra(HA_EXTRA_PREPARE_FOR_DROP);
}
if (errpos >= 3 && to->file->ha_end_bulk_insert() && error <= 0) if (errpos >= 3 && to->file->ha_end_bulk_insert() && error <= 0)
{ {
to->file->print_error(my_errno,MYF(0)); to->file->print_error(my_errno,MYF(0));
......
...@@ -193,9 +193,10 @@ int maria_close(register MARIA_HA *info) ...@@ -193,9 +193,10 @@ int maria_close(register MARIA_HA *info)
else else
share_can_be_freed= TRUE; share_can_be_freed= TRUE;
if (share->state_history) if (share->state_history && share->state_history->trid)
{ {
MARIA_STATE_HISTORY_CLOSED *history; MARIA_STATE_HISTORY_CLOSED *history;
DBUG_PRINT("info", ("Storing state history"));
/* /*
Here we ignore the unlikely case that we don't have memory to 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 store the state. In the worst case what happens is that any transaction
......
...@@ -38,14 +38,8 @@ int maria_delete_table(const char *name) ...@@ -38,14 +38,8 @@ int maria_delete_table(const char *name)
/** @todo LOCK take X-lock on table */ /** @todo LOCK take X-lock on table */
/* /*
We need to know if this table is transactional. We need to know if this table is transactional.
When built with RAID support, we also need to determine if this table Unfortunately it is necessary to open the table just to check this. We use
makes use of the raid feature. If yes, we need to remove all raid 'open_for_repair' to be able to open even a crashed table.
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.
*/ */
if (!(info= maria_open(name, O_RDONLY, HA_OPEN_FOR_REPAIR))) if (!(info= maria_open(name, O_RDONLY, HA_OPEN_FOR_REPAIR)))
{ {
...@@ -56,6 +50,8 @@ int maria_delete_table(const char *name) ...@@ -56,6 +50,8 @@ int maria_delete_table(const char *name)
sync_dir= (info->s->now_transactional && !info->s->temporary && sync_dir= (info->s->now_transactional && !info->s->temporary &&
!maria_in_recovery) ? !maria_in_recovery) ?
MY_SYNC_DIR : 0; MY_SYNC_DIR : 0;
/* Remove history for table */
_ma_reset_state(info);
maria_close(info); maria_close(info);
} }
......
...@@ -42,6 +42,7 @@ int maria_status(MARIA_HA *info, register MARIA_INFO *x, uint flag) ...@@ -42,6 +42,7 @@ int maria_status(MARIA_HA *info, register MARIA_INFO *x, uint flag)
MY_STAT state; MY_STAT state;
MARIA_SHARE *share= info->s; MARIA_SHARE *share= info->s;
DBUG_ENTER("maria_status"); DBUG_ENTER("maria_status");
DBUG_PRINT("info", ("records: %lld", info->state->records));
x->recpos= info->cur_row.lastpos; x->recpos= info->cur_row.lastpos;
if (flag == HA_STATUS_POS) if (flag == HA_STATUS_POS)
......
...@@ -866,6 +866,9 @@ MARIA_HA *maria_open(const char *name, int mode, uint open_flags) ...@@ -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); _ma_remove_not_visible_states(history->state_history, 0, 0);
history->state_history= 0; history->state_history= 0;
(void) my_hash_delete(&maria_stored_state, (uchar*) history); (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 else
{ {
...@@ -988,6 +991,7 @@ MARIA_HA *maria_open(const char *name, int mode, uint open_flags) ...@@ -988,6 +991,7 @@ MARIA_HA *maria_open(const char *name, int mode, uint open_flags)
mysql_mutex_unlock(&THR_LOCK_maria); mysql_mutex_unlock(&THR_LOCK_maria);
m_info->open_flags= open_flags; m_info->open_flags= open_flags;
DBUG_PRINT("exit", ("table: %p name: %s",m_info, name));
DBUG_RETURN(m_info); DBUG_RETURN(m_info);
err: err:
......
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