Commit 23bf186c authored by monty@mysql.com's avatar monty@mysql.com

Merge bk-internal.mysql.com:/home/bk/mysql-5.0

into mysql.com:/home/my/mysql-5.0
parents 72c473ec 80b3e024
#! /bin/sh #! /bin/sh
path=`dirname $0` path=`dirname $0`
. "$path/SETUP.sh" . "$path/SETUP.sh" $@ --with-debug=full
extra_flags="$pentium_cflags $debug_cflags" extra_flags="$pentium_cflags $debug_cflags"
c_warnings="$c_warnings $debug_extra_warnings" c_warnings="$c_warnings $debug_extra_warnings"
......
#! /bin/sh #! /bin/sh
path=`dirname $0` path=`dirname $0`
. "$path/SETUP.sh" . "$path/SETUP.sh" $@ --with-debug=full
extra_flags="$pentium_cflags $debug_cflags $max_cflags" extra_flags="$pentium_cflags $debug_cflags $max_cflags"
c_warnings="$c_warnings $debug_extra_warnings" c_warnings="$c_warnings $debug_extra_warnings"
......
...@@ -166,7 +166,8 @@ gptr alloc_root(MEM_ROOT *mem_root,unsigned int Size) ...@@ -166,7 +166,8 @@ gptr alloc_root(MEM_ROOT *mem_root,unsigned int Size)
gptr point; gptr point;
reg1 USED_MEM *next= 0; reg1 USED_MEM *next= 0;
reg2 USED_MEM **prev; reg2 USED_MEM **prev;
DBUG_ENTER("alloc_root");
DBUG_PRINT("enter",("root: 0x%lx", mem_root));
DBUG_ASSERT(alloc_root_inited(mem_root)); DBUG_ASSERT(alloc_root_inited(mem_root));
Size= ALIGN_SIZE(Size); Size= ALIGN_SIZE(Size);
...@@ -213,7 +214,8 @@ gptr alloc_root(MEM_ROOT *mem_root,unsigned int Size) ...@@ -213,7 +214,8 @@ gptr alloc_root(MEM_ROOT *mem_root,unsigned int Size)
mem_root->used= next; mem_root->used= next;
mem_root->first_block_usage= 0; mem_root->first_block_usage= 0;
} }
return(point); DBUG_PRINT("exit",("ptr: 0x%lx", (ulong) point));
DBUG_RETURN(point);
#endif #endif
} }
......
...@@ -2377,16 +2377,17 @@ longlong Item_func_release_lock::val_int() ...@@ -2377,16 +2377,17 @@ longlong Item_func_release_lock::val_int()
longlong Item_func_last_insert_id::val_int() longlong Item_func_last_insert_id::val_int()
{ {
THD *thd= current_thd;
DBUG_ASSERT(fixed == 1); DBUG_ASSERT(fixed == 1);
if (arg_count) if (arg_count)
{ {
longlong value=args[0]->val_int(); longlong value= args[0]->val_int();
current_thd->insert_id(value); thd->insert_id(value);
null_value=args[0]->null_value; null_value= args[0]->null_value;
return value; // Avoid side effect of insert_id()
} }
else thd->lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
current_thd->lex->uncacheable(UNCACHEABLE_SIDEEFFECT); return thd->insert_id();
return current_thd->insert_id();
} }
/* This function is just used to test speed of different functions */ /* This function is just used to test speed of different functions */
......
...@@ -53,7 +53,7 @@ void Item_subselect::init(st_select_lex *select_lex, ...@@ -53,7 +53,7 @@ void Item_subselect::init(st_select_lex *select_lex,
{ {
DBUG_ENTER("Item_subselect::init"); DBUG_ENTER("Item_subselect::init");
DBUG_PRINT("subs", ("select_lex 0x%xl", (ulong) select_lex)); DBUG_PRINT("enter", ("select_lex: 0x%x", (ulong) select_lex));
unit= select_lex->master_unit(); unit= select_lex->master_unit();
if (unit->item) if (unit->item)
......
...@@ -424,10 +424,10 @@ sp_head::~sp_head() ...@@ -424,10 +424,10 @@ sp_head::~sp_head()
void void
sp_head::destroy() sp_head::destroy()
{ {
DBUG_ENTER("sp_head::destroy");
DBUG_PRINT("info", ("name: %s", m_name.str));
sp_instr *i; sp_instr *i;
LEX *lex; LEX *lex;
DBUG_ENTER("sp_head::destroy");
DBUG_PRINT("info", ("name: %s", m_name.str));
for (uint ip = 0 ; (i = get_instr(ip)) ; ip++) for (uint ip = 0 ; (i = get_instr(ip)) ; ip++)
delete i; delete i;
......
...@@ -115,9 +115,14 @@ void lex_free(void) ...@@ -115,9 +115,14 @@ void lex_free(void)
void lex_start(THD *thd, uchar *buf,uint length) void lex_start(THD *thd, uchar *buf,uint length)
{ {
LEX *lex= thd->lex; LEX *lex= thd->lex;
DBUG_ENTER("lex_start");
lex->thd= lex->unit.thd= thd;
lex->buf= lex->ptr= buf;
lex->end_of_query= buf+length;
lex->unit.init_query(); lex->unit.init_query();
lex->unit.init_select(); lex->unit.init_select();
lex->thd= lex->unit.thd= thd;
lex->select_lex.init_query(); lex->select_lex.init_query();
lex->value_list.empty(); lex->value_list.empty();
lex->update_list.empty(); lex->update_list.empty();
...@@ -150,8 +155,6 @@ void lex_start(THD *thd, uchar *buf,uint length) ...@@ -150,8 +155,6 @@ void lex_start(THD *thd, uchar *buf,uint length)
lex->empty_field_list_on_rset= 0; lex->empty_field_list_on_rset= 0;
lex->select_lex.select_number= 1; lex->select_lex.select_number= 1;
lex->next_state=MY_LEX_START; lex->next_state=MY_LEX_START;
lex->buf= lex->ptr= buf;
lex->end_of_query=buf+length;
lex->yylineno = 1; lex->yylineno = 1;
lex->in_comment=0; lex->in_comment=0;
lex->length=0; lex->length=0;
...@@ -173,14 +176,11 @@ void lex_start(THD *thd, uchar *buf,uint length) ...@@ -173,14 +176,11 @@ void lex_start(THD *thd, uchar *buf,uint length)
if (lex->spfuns.records) if (lex->spfuns.records)
my_hash_reset(&lex->spfuns); my_hash_reset(&lex->spfuns);
DBUG_VOID_RETURN;
} }
void lex_end(LEX *lex) void lex_end(LEX *lex)
{ {
for (SELECT_LEX *sl= lex->all_selects_list;
sl;
sl= sl->next_select_in_list())
sl->expr_list.delete_elements(); // If error when parsing sql-varargs
x_free(lex->yacc_yyss); x_free(lex->yacc_yyss);
x_free(lex->yacc_yyvs); x_free(lex->yacc_yyvs);
} }
......
...@@ -4719,19 +4719,21 @@ bool ...@@ -4719,19 +4719,21 @@ bool
mysql_new_select(LEX *lex, bool move_down) mysql_new_select(LEX *lex, bool move_down)
{ {
SELECT_LEX *select_lex; SELECT_LEX *select_lex;
DBUG_ENTER("mysql_new_select");
if (!(select_lex= new(lex->thd->mem_root) SELECT_LEX())) if (!(select_lex= new(lex->thd->mem_root) SELECT_LEX()))
return 1; DBUG_RETURN(1);
select_lex->select_number= ++lex->thd->select_number; select_lex->select_number= ++lex->thd->select_number;
select_lex->init_query(); select_lex->init_query();
select_lex->init_select(); select_lex->init_select();
select_lex->parent_lex= lex; select_lex->parent_lex= lex;
if (move_down) if (move_down)
{ {
SELECT_LEX_UNIT *unit;
lex->subqueries= TRUE; lex->subqueries= TRUE;
/* first select_lex of subselect or derived table */ /* first select_lex of subselect or derived table */
SELECT_LEX_UNIT *unit;
if (!(unit= new(lex->thd->mem_root) SELECT_LEX_UNIT())) if (!(unit= new(lex->thd->mem_root) SELECT_LEX_UNIT()))
return 1; DBUG_RETURN(1);
unit->init_query(); unit->init_query();
unit->init_select(); unit->init_select();
...@@ -4748,7 +4750,7 @@ mysql_new_select(LEX *lex, bool move_down) ...@@ -4748,7 +4750,7 @@ mysql_new_select(LEX *lex, bool move_down)
if (lex->current_select->order_list.first && !lex->current_select->braces) if (lex->current_select->order_list.first && !lex->current_select->braces)
{ {
my_error(ER_WRONG_USAGE, MYF(0), "UNION", "ORDER BY"); my_error(ER_WRONG_USAGE, MYF(0), "UNION", "ORDER BY");
return 1; DBUG_RETURN(1);
} }
select_lex->include_neighbour(lex->current_select); select_lex->include_neighbour(lex->current_select);
SELECT_LEX_UNIT *unit= select_lex->master_unit(); SELECT_LEX_UNIT *unit= select_lex->master_unit();
...@@ -4760,7 +4762,7 @@ mysql_new_select(LEX *lex, bool move_down) ...@@ -4760,7 +4762,7 @@ mysql_new_select(LEX *lex, bool move_down)
fake SELECT_LEX for UNION processing fake SELECT_LEX for UNION processing
*/ */
if (!(fake= unit->fake_select_lex= new(lex->thd->mem_root) SELECT_LEX())) if (!(fake= unit->fake_select_lex= new(lex->thd->mem_root) SELECT_LEX()))
return 1; DBUG_RETURN(1);
fake->include_standalone(unit, fake->include_standalone(unit,
(SELECT_LEX_NODE**)&unit->fake_select_lex); (SELECT_LEX_NODE**)&unit->fake_select_lex);
fake->select_number= INT_MAX; fake->select_number= INT_MAX;
...@@ -4774,7 +4776,7 @@ mysql_new_select(LEX *lex, bool move_down) ...@@ -4774,7 +4776,7 @@ mysql_new_select(LEX *lex, bool move_down)
select_lex->include_global((st_select_lex_node**)&lex->all_selects_list); select_lex->include_global((st_select_lex_node**)&lex->all_selects_list);
lex->current_select= select_lex; lex->current_select= select_lex;
select_lex->resolve_mode= SELECT_LEX::SELECT_MODE; select_lex->resolve_mode= SELECT_LEX::SELECT_MODE;
return 0; DBUG_RETURN(0);
} }
/* /*
......
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