mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/dlenev/src/mysql-5.0-ttdf
This commit is contained in:
commit
eaa7f6ab88
3 changed files with 14 additions and 12 deletions
|
@ -1499,8 +1499,8 @@ sp_instr_set_trigger_field::execute(THD *thd, uint *nextp)
|
|||
DBUG_ENTER("sp_instr_set_trigger_field::execute");
|
||||
/* QQ: Still unsure what should we return in case of error 1 or -1 ? */
|
||||
if (!value->fixed && value->fix_fields(thd, 0, &value) ||
|
||||
trigger_field.fix_fields(thd, 0, 0) ||
|
||||
(value->save_in_field(trigger_field.field, 0) < 0))
|
||||
trigger_field->fix_fields(thd, 0, 0) ||
|
||||
(value->save_in_field(trigger_field->field, 0) < 0))
|
||||
res= -1;
|
||||
*nextp= m_ip + 1;
|
||||
DBUG_RETURN(res);
|
||||
|
@ -1510,7 +1510,7 @@ void
|
|||
sp_instr_set_trigger_field::print(String *str)
|
||||
{
|
||||
str->append("set ", 4);
|
||||
trigger_field.print(str);
|
||||
trigger_field->print(str);
|
||||
str->append(":=", 2);
|
||||
value->print(str);
|
||||
}
|
||||
|
|
|
@ -467,9 +467,9 @@ class sp_instr_set_trigger_field : public sp_instr
|
|||
public:
|
||||
|
||||
sp_instr_set_trigger_field(uint ip, sp_pcontext *ctx,
|
||||
LEX_STRING field_name, Item *val)
|
||||
Item_trigger_field *trg_fld, Item *val)
|
||||
: sp_instr(ip, ctx),
|
||||
trigger_field(Item_trigger_field::NEW_ROW, field_name.str),
|
||||
trigger_field(trg_fld),
|
||||
value(val)
|
||||
{}
|
||||
|
||||
|
@ -480,9 +480,8 @@ public:
|
|||
|
||||
virtual void print(String *str);
|
||||
|
||||
Item_trigger_field trigger_field;
|
||||
|
||||
private:
|
||||
Item_trigger_field *trigger_field;
|
||||
Item *value;
|
||||
}; // class sp_instr_trigger_field : public sp_instr
|
||||
|
||||
|
|
|
@ -7569,6 +7569,7 @@ sys_option_value:
|
|||
{
|
||||
/* We are in trigger and assigning value to field of new row */
|
||||
Item *it;
|
||||
Item_trigger_field *trg_fld;
|
||||
sp_instr_set_trigger_field *i;
|
||||
if ($1)
|
||||
{
|
||||
|
@ -7589,17 +7590,19 @@ sys_option_value:
|
|||
it= new Item_null();
|
||||
}
|
||||
|
||||
if (!(i= new sp_instr_set_trigger_field(
|
||||
lex->sphead->instructions(), lex->spcont,
|
||||
$2.base_name, it)))
|
||||
if (!(trg_fld= new Item_trigger_field(Item_trigger_field::NEW_ROW,
|
||||
$2.base_name.str)) ||
|
||||
!(i= new sp_instr_set_trigger_field(
|
||||
lex->sphead->instructions(), lex->spcont,
|
||||
trg_fld, it)))
|
||||
YYABORT;
|
||||
|
||||
/*
|
||||
Let us add this item to list of all Item_trigger_field
|
||||
objects in trigger.
|
||||
*/
|
||||
lex->trg_table_fields.link_in_list((byte *)&i->trigger_field,
|
||||
(byte **)&i->trigger_field.next_trg_field);
|
||||
lex->trg_table_fields.link_in_list((byte *)trg_fld,
|
||||
(byte **)&trg_fld->next_trg_field);
|
||||
|
||||
lex->sphead->add_instr(i);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue