Commit 3dcd7e53 authored by pem@mysql.comhem.se's avatar pem@mysql.comhem.se

Post-merge fixes.

Not finished, will not be pushed until additional fixes have been made.
parent 71eddc36
......@@ -779,6 +779,7 @@ could be out of memory");
len - 1, &error,
description_event);
if (!ev)
{
fprintf(stderr, "Could not construct log event object\n");
DBUG_RETURN(1);
}
......@@ -819,6 +820,29 @@ could be out of memory");
}
if (process_event(&rec_count,&last_event_info,ev,old_off))
DBUG_RETURN(1);
}
else
{
Load_log_event *le= (Load_log_event*)ev;
const char *old_fname= le->fname;
uint old_len= le->fname_len;
File file;
if ((file= load_processor.prepare_new_file_for_old_format(le,fname)) < 0)
DBUG_RETURN(1);
if (process_event(&rec_count,&last_event_info,ev,old_off))
{
my_close(file,MYF(MY_WME));
DBUG_RETURN(1);
}
if (load_processor.load_old_format_file(net,old_fname,old_len,file))
{
my_close(file,MYF(MY_WME));
DBUG_RETURN(1);
}
my_close(file,MYF(MY_WME));
}
/*
Let's adjust offset for remote log as for local log to produce
similar text. As we don't print the fake Rotate event, all events are
......
......@@ -656,4 +656,4 @@ timestampdiff(SQL_TSI_FRAC_SECOND, '2001-02-01 12:59:59.120000', '2001-05-01 12:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
Note 1003 select high_priority timestamp_diff(WEEK,_latin1'2001-02-01',_latin1'2001-05-01') AS `a1`,timestamp_diff(SECOND_FRAC,_latin1'2001-02-01 12:59:59.120000',_latin1'2001-05-01 12:58:58.119999') AS `a2`
Note 1003 select timestamp_diff(WEEK,_latin1'2001-02-01',_latin1'2001-05-01') AS `a1`,timestamp_diff(SECOND_FRAC,_latin1'2001-02-01 12:59:59.120000',_latin1'2001-05-01 12:58:58.119999') AS `a2`
......@@ -662,6 +662,7 @@ QUICK_RANGE_SELECT::QUICK_RANGE_SELECT(THD *thd, TABLE *table, uint key_nr,
int QUICK_RANGE_SELECT::init()
{
key_part_info= head->key_info[index].key_part;
return (error= file->index_init(index));
}
......@@ -2154,7 +2155,7 @@ tree_or(PARAM *param,SEL_TREE *tree1,SEL_TREE *tree2)
{
/* one tree is index merge tree and another is range tree */
if (tree1->merges.is_empty())
swap(SEL_TREE*, tree1, tree2);
swap_variables(SEL_TREE*, tree1, tree2);
/* add tree2 to tree1->merges, checking if it collapses to ALWAYS */
if (imerge_list_or_tree(param, &tree1->merges, tree2))
......
......@@ -3374,7 +3374,7 @@ greedy_search(JOIN *join,
pos= join->best_ref[++best_idx];
DBUG_ASSERT((pos != NULL)); // should always find 'best_table'
/* move 'best_table' at the first free position in the array of joins */
swap(JOIN_TAB*, join->best_ref[idx], join->best_ref[best_idx]);
swap_variables(JOIN_TAB*, join->best_ref[idx], join->best_ref[best_idx]);
/* compute the cost of the new plan extended with 'best_table' */
record_count*= join->positions[idx].records_read;
......@@ -3580,7 +3580,7 @@ best_extension_by_limited_search(JOIN *join,
if ( (search_depth > 1) && (remaining_tables & ~real_table_bit) )
{ /* Recursively expand the current partial plan */
swap(JOIN_TAB*, join->best_ref[idx], *pos);
swap_variables(JOIN_TAB*, join->best_ref[idx], *pos);
best_extension_by_limited_search(join,
remaining_tables & ~real_table_bit,
idx + 1,
......@@ -3590,7 +3590,7 @@ best_extension_by_limited_search(JOIN *join,
prune_level);
if (thd->killed)
DBUG_VOID_RETURN;
swap(JOIN_TAB*, join->best_ref[idx], *pos);
swap_variables(JOIN_TAB*, join->best_ref[idx], *pos);
}
else
{ /*
......
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