mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Post-merge fixes.
Not finished, will not be pushed until additional fixes have been made.
This commit is contained in:
@ -779,6 +779,7 @@ could be out of memory");
|
|||||||
len - 1, &error,
|
len - 1, &error,
|
||||||
description_event);
|
description_event);
|
||||||
if (!ev)
|
if (!ev)
|
||||||
|
{
|
||||||
fprintf(stderr, "Could not construct log event object\n");
|
fprintf(stderr, "Could not construct log event object\n");
|
||||||
DBUG_RETURN(1);
|
DBUG_RETURN(1);
|
||||||
}
|
}
|
||||||
@ -819,6 +820,29 @@ could be out of memory");
|
|||||||
}
|
}
|
||||||
if (process_event(&rec_count,&last_event_info,ev,old_off))
|
if (process_event(&rec_count,&last_event_info,ev,old_off))
|
||||||
DBUG_RETURN(1);
|
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
|
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
|
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
|
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
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
Warnings:
|
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()
|
int QUICK_RANGE_SELECT::init()
|
||||||
{
|
{
|
||||||
|
key_part_info= head->key_info[index].key_part;
|
||||||
return (error= file->index_init(index));
|
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 */
|
/* one tree is index merge tree and another is range tree */
|
||||||
if (tree1->merges.is_empty())
|
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 */
|
/* add tree2 to tree1->merges, checking if it collapses to ALWAYS */
|
||||||
if (imerge_list_or_tree(param, &tree1->merges, tree2))
|
if (imerge_list_or_tree(param, &tree1->merges, tree2))
|
||||||
|
@ -3374,7 +3374,7 @@ greedy_search(JOIN *join,
|
|||||||
pos= join->best_ref[++best_idx];
|
pos= join->best_ref[++best_idx];
|
||||||
DBUG_ASSERT((pos != NULL)); // should always find 'best_table'
|
DBUG_ASSERT((pos != NULL)); // should always find 'best_table'
|
||||||
/* move 'best_table' at the first free position in the array of joins */
|
/* 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' */
|
/* compute the cost of the new plan extended with 'best_table' */
|
||||||
record_count*= join->positions[idx].records_read;
|
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) )
|
if ( (search_depth > 1) && (remaining_tables & ~real_table_bit) )
|
||||||
{ /* Recursively expand the current partial plan */
|
{ /* 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,
|
best_extension_by_limited_search(join,
|
||||||
remaining_tables & ~real_table_bit,
|
remaining_tables & ~real_table_bit,
|
||||||
idx + 1,
|
idx + 1,
|
||||||
@ -3590,7 +3590,7 @@ best_extension_by_limited_search(JOIN *join,
|
|||||||
prune_level);
|
prune_level);
|
||||||
if (thd->killed)
|
if (thd->killed)
|
||||||
DBUG_VOID_RETURN;
|
DBUG_VOID_RETURN;
|
||||||
swap(JOIN_TAB*, join->best_ref[idx], *pos);
|
swap_variables(JOIN_TAB*, join->best_ref[idx], *pos);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ /*
|
{ /*
|
||||||
|
Reference in New Issue
Block a user