mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
Merge bb-10.2-ext into 10.3
This commit is contained in:
@ -1321,7 +1321,21 @@ public:
|
||||
*/
|
||||
|
||||
struct Item_change_record;
|
||||
typedef I_List<Item_change_record> Item_change_list;
|
||||
class Item_change_list
|
||||
{
|
||||
I_List<Item_change_record> change_list;
|
||||
public:
|
||||
void nocheck_register_item_tree_change(Item **place, Item *old_value,
|
||||
MEM_ROOT *runtime_memroot);
|
||||
void check_and_register_item_tree_change(Item **place, Item **new_value,
|
||||
MEM_ROOT *runtime_memroot);
|
||||
void rollback_item_tree_changes();
|
||||
void move_elements_to(Item_change_list *to)
|
||||
{
|
||||
change_list.move_elements_to(&to->change_list);
|
||||
}
|
||||
bool is_empty() { return change_list.is_empty(); }
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
@ -2105,6 +2119,14 @@ extern "C" void my_message_sql(uint error, const char *str, myf MyFlags);
|
||||
*/
|
||||
|
||||
class THD :public Statement,
|
||||
/*
|
||||
This is to track items changed during execution of a prepared
|
||||
statement/stored procedure. It's created by
|
||||
nocheck_register_item_tree_change() in memory root of THD,
|
||||
and freed in rollback_item_tree_changes().
|
||||
For conventional execution it's always empty.
|
||||
*/
|
||||
public Item_change_list,
|
||||
public MDL_context_owner,
|
||||
public Open_tables_state,
|
||||
public QUERY_START_TIME_INFO
|
||||
@ -2586,14 +2608,6 @@ public:
|
||||
#ifdef SIGNAL_WITH_VIO_CLOSE
|
||||
Vio* active_vio;
|
||||
#endif
|
||||
/*
|
||||
This is to track items changed during execution of a prepared
|
||||
statement/stored procedure. It's created by
|
||||
nocheck_register_item_tree_change() in memory root of THD, and freed in
|
||||
rollback_item_tree_changes(). For conventional execution it's always
|
||||
empty.
|
||||
*/
|
||||
Item_change_list change_list;
|
||||
|
||||
/*
|
||||
A permanent memory area of the statement. For conventional
|
||||
@ -3785,11 +3799,6 @@ public:
|
||||
*/
|
||||
memcpy((char*) place, new_value, sizeof(*new_value));
|
||||
}
|
||||
void nocheck_register_item_tree_change(Item **place, Item *old_value,
|
||||
MEM_ROOT *runtime_memroot);
|
||||
void check_and_register_item_tree_change(Item **place, Item **new_value,
|
||||
MEM_ROOT *runtime_memroot);
|
||||
void rollback_item_tree_changes();
|
||||
|
||||
/*
|
||||
Cleanup statement parse state (parse tree, lex) and execution
|
||||
|
Reference in New Issue
Block a user