mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
System Versioning 1.0 pre8
Merge branch '10.3' into trunk
This commit is contained in:
@ -2750,6 +2750,8 @@ void THD::nocheck_register_item_tree_change(Item **place, Item *old_value,
|
||||
MEM_ROOT *runtime_memroot)
|
||||
{
|
||||
Item_change_record *change;
|
||||
DBUG_ENTER("THD::nocheck_register_item_tree_change");
|
||||
DBUG_PRINT("enter", ("Register %p <- %p", old_value, (*place)));
|
||||
/*
|
||||
Now we use one node per change, which adds some memory overhead,
|
||||
but still is rather fast as we use alloc_root for allocations.
|
||||
@ -2762,12 +2764,13 @@ void THD::nocheck_register_item_tree_change(Item **place, Item *old_value,
|
||||
OOM, thd->fatal_error() is called by the error handler of the
|
||||
memroot. Just return.
|
||||
*/
|
||||
return;
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
change= new (change_mem) Item_change_record;
|
||||
change->place= place;
|
||||
change->old_value= old_value;
|
||||
change_list.append(change);
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -2808,7 +2811,11 @@ void THD::rollback_item_tree_changes()
|
||||
DBUG_ENTER("rollback_item_tree_changes");
|
||||
|
||||
while ((change= it++))
|
||||
{
|
||||
DBUG_PRINT("info", ("revert %p -> %p",
|
||||
change->old_value, (*change->place)));
|
||||
*change->place= change->old_value;
|
||||
}
|
||||
/* We can forget about changes memory: it's allocated in runtime memroot */
|
||||
change_list.empty();
|
||||
DBUG_VOID_RETURN;
|
||||
@ -4688,7 +4695,7 @@ TABLE *find_fk_open_table(THD *thd, const char *db, size_t db_len,
|
||||
{
|
||||
if (t->s->db.length == db_len && t->s->table_name.length == table_len &&
|
||||
!strcmp(t->s->db.str, db) && !strcmp(t->s->table_name.str, table) &&
|
||||
t->pos_in_table_list->prelocking_placeholder == TABLE_LIST::FK)
|
||||
t->pos_in_table_list->prelocking_placeholder == TABLE_LIST::PRELOCK_FK)
|
||||
return t;
|
||||
}
|
||||
return NULL;
|
||||
@ -6081,7 +6088,7 @@ int THD::decide_logging_format(TABLE_LIST *tables)
|
||||
replicated_tables_count++;
|
||||
|
||||
if (table->lock_type <= TL_READ_NO_INSERT &&
|
||||
table->prelocking_placeholder != TABLE_LIST::FK)
|
||||
table->prelocking_placeholder != TABLE_LIST::PRELOCK_FK)
|
||||
has_read_tables= true;
|
||||
else if (table->table->found_next_number_field &&
|
||||
(table->lock_type >= TL_WRITE_ALLOW_WRITE))
|
||||
|
Reference in New Issue
Block a user