1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

Fix Item tree changes/rollback debug print

This commit is contained in:
Oleksandr Byelkin
2018-01-21 23:44:31 +01:00
parent 94da1cb4a6
commit 11408a69ad
2 changed files with 8 additions and 4 deletions

View File

@ -2234,6 +2234,9 @@ void THD::check_and_register_item_tree_change(Item **place, Item **new_value,
MEM_ROOT *runtime_memroot) MEM_ROOT *runtime_memroot)
{ {
Item_change_record *change; Item_change_record *change;
DBUG_ENTER("THD::check_and_register_item_tree_change");
DBUG_PRINT("enter", ("Register: %p (%p) <- %p (%p)",
*place, place, *new_value, new_value));
I_List_iterator<Item_change_record> it(change_list); I_List_iterator<Item_change_record> it(change_list);
while ((change= it++)) while ((change= it++))
{ {
@ -2243,6 +2246,7 @@ void THD::check_and_register_item_tree_change(Item **place, Item **new_value,
if (change) if (change)
nocheck_register_item_tree_change(place, change->old_value, nocheck_register_item_tree_change(place, change->old_value,
runtime_memroot); runtime_memroot);
DBUG_VOID_RETURN;
} }
@ -2250,17 +2254,13 @@ void THD::rollback_item_tree_changes()
{ {
I_List_iterator<Item_change_record> it(change_list); I_List_iterator<Item_change_record> it(change_list);
Item_change_record *change; Item_change_record *change;
DBUG_ENTER("rollback_item_tree_changes");
while ((change= it++)) while ((change= it++))
{ {
DBUG_PRINT("info", ("revert %p -> %p",
change->old_value, (*change->place)));
*change->place= change->old_value; *change->place= change->old_value;
} }
/* We can forget about changes memory: it's allocated in runtime memroot */ /* We can forget about changes memory: it's allocated in runtime memroot */
change_list.empty(); change_list.empty();
DBUG_VOID_RETURN;
} }

View File

@ -2725,10 +2725,14 @@ public:
void change_item_tree(Item **place, Item *new_value) void change_item_tree(Item **place, Item *new_value)
{ {
DBUG_ENTER("THD::change_item_tree");
DBUG_PRINT("enter", ("Register: %p (%p) <- %p",
*place, place, new_value));
/* TODO: check for OOM condition here */ /* TODO: check for OOM condition here */
if (!stmt_arena->is_conventional()) if (!stmt_arena->is_conventional())
nocheck_register_item_tree_change(place, *place, mem_root); nocheck_register_item_tree_change(place, *place, mem_root);
*place= new_value; *place= new_value;
DBUG_VOID_RETURN;
} }
/** /**
Make change in item tree after checking whether it needs registering Make change in item tree after checking whether it needs registering