removed unneeded table name pointer
transaction-live memory cleanup moved to ha_commit/ha_rollback fixed query cache validator to work correctly on systems that allocate unaligned dat sql/handler.cc: transaction-live memory cleanup moved to ha_commit/ha_rollback sql/sql_cache.cc: removed unneeded table name pointer fixed debug enter message fixed query cache validator to work correctly on systems that allocate unaligned data sql/sql_class.cc: removed unneeded table name pointer sql/sql_parse.cc: transaction-live memory cleanup moved to ha_commit/ha_rollback sql/table.h: removed unneeded table name pointer
This commit is contained in:
parent
fb104d76b5
commit
6a2eec80b0
@ -316,7 +316,10 @@ int ha_commit_trans(THD *thd, THD_TRANS* trans)
|
|||||||
sql_print_error("Error: Got error during commit; Binlog is not up to date!");
|
sql_print_error("Error: Got error during commit; Binlog is not up to date!");
|
||||||
thd->tx_isolation=thd->session_tx_isolation;
|
thd->tx_isolation=thd->session_tx_isolation;
|
||||||
if (operation_done)
|
if (operation_done)
|
||||||
|
{
|
||||||
statistic_increment(ha_commit_count,&LOCK_status);
|
statistic_increment(ha_commit_count,&LOCK_status);
|
||||||
|
thd->transaction.cleanup();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif // using transactions
|
#endif // using transactions
|
||||||
DBUG_RETURN(error);
|
DBUG_RETURN(error);
|
||||||
@ -361,7 +364,10 @@ int ha_rollback_trans(THD *thd, THD_TRANS *trans)
|
|||||||
thd->transaction.trans_log.end_of_file= max_binlog_cache_size;
|
thd->transaction.trans_log.end_of_file= max_binlog_cache_size;
|
||||||
thd->tx_isolation=thd->session_tx_isolation;
|
thd->tx_isolation=thd->session_tx_isolation;
|
||||||
if (operation_done)
|
if (operation_done)
|
||||||
|
{
|
||||||
statistic_increment(ha_rollback_count,&LOCK_status);
|
statistic_increment(ha_rollback_count,&LOCK_status);
|
||||||
|
thd->transaction.cleanup();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif /* USING_TRANSACTIONS */
|
#endif /* USING_TRANSACTIONS */
|
||||||
DBUG_RETURN(error);
|
DBUG_RETURN(error);
|
||||||
|
@ -1073,7 +1073,8 @@ void Query_cache::invalidate(CHANGED_TABLE_LIST *tables_used)
|
|||||||
{
|
{
|
||||||
invalidate_table((byte*) tables_used->key, tables_used->key_length);
|
invalidate_table((byte*) tables_used->key, tables_used->key_length);
|
||||||
DBUG_PRINT("qcache", (" db %s, table %s", tables_used->key,
|
DBUG_PRINT("qcache", (" db %s, table %s", tables_used->key,
|
||||||
tables_used->table_name));
|
tables_used->key+
|
||||||
|
strlen(tables_used->key)+1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
STRUCT_UNLOCK(&structure_guard_mutex);
|
STRUCT_UNLOCK(&structure_guard_mutex);
|
||||||
@ -1994,7 +1995,7 @@ Query_cache_block *
|
|||||||
Query_cache::allocate_block(ulong len, my_bool not_less, ulong min,
|
Query_cache::allocate_block(ulong len, my_bool not_less, ulong min,
|
||||||
my_bool under_guard)
|
my_bool under_guard)
|
||||||
{
|
{
|
||||||
DBUG_ENTER("Query_cache::allocate_n_lock_block");
|
DBUG_ENTER("Query_cache::allocate_block");
|
||||||
DBUG_PRINT("qcache", ("len %lu, not less %d, min %lu, uder_guard %d",
|
DBUG_PRINT("qcache", ("len %lu, not less %d, min %lu, uder_guard %d",
|
||||||
len, not_less,min,under_guard));
|
len, not_less,min,under_guard));
|
||||||
|
|
||||||
@ -3060,7 +3061,8 @@ my_bool Query_cache::check_integrity(bool not_locked)
|
|||||||
DBUG_PRINT("qcache", ("block 0x%lx, type %u...",
|
DBUG_PRINT("qcache", ("block 0x%lx, type %u...",
|
||||||
(ulong) block, (uint) block->type));
|
(ulong) block, (uint) block->type));
|
||||||
// Check allignment
|
// Check allignment
|
||||||
if ((ulonglong)block % ALIGN_SIZE(1))
|
if ((((ulonglong)block) % (ulonglong)ALIGN_SIZE(1)) !=
|
||||||
|
(((ulonglong)first_block) % (ulonglong)ALIGN_SIZE(1)))
|
||||||
{
|
{
|
||||||
DBUG_PRINT("error",
|
DBUG_PRINT("error",
|
||||||
("block 0x%lx do not aligned by %d", (ulong) block,
|
("block 0x%lx do not aligned by %d", (ulong) block,
|
||||||
|
@ -345,11 +345,7 @@ CHANGED_TABLE_LIST* THD::changed_table_dup(TABLE *table)
|
|||||||
ALIGN_SIZE(sizeof(CHANGED_TABLE_LIST)));
|
ALIGN_SIZE(sizeof(CHANGED_TABLE_LIST)));
|
||||||
new_table->next = 0;
|
new_table->next = 0;
|
||||||
new_table->key_length = table->key_length;
|
new_table->key_length = table->key_length;
|
||||||
uint32 db_len = ((new_table->table_name =
|
::memcpy(new_table->key, table->table_cache_key, table->key_length);
|
||||||
::strmake(new_table->key, table->table_cache_key,
|
|
||||||
table->key_length) + 1) - new_table->key);
|
|
||||||
::memcpy(new_table->key + db_len, table->table_cache_key + db_len,
|
|
||||||
table->key_length - db_len);
|
|
||||||
return new_table;
|
return new_table;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2432,7 +2432,6 @@ mysql_execute_command(void)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
res= -1;
|
res= -1;
|
||||||
thd->transaction.cleanup();
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SQLCOM_ROLLBACK:
|
case SQLCOM_ROLLBACK:
|
||||||
@ -2447,7 +2446,6 @@ mysql_execute_command(void)
|
|||||||
else
|
else
|
||||||
res= -1;
|
res= -1;
|
||||||
thd->options&= ~(ulong) (OPTION_BEGIN | OPTION_STATUS_NO_TRANS_UPDATE);
|
thd->options&= ~(ulong) (OPTION_BEGIN | OPTION_STATUS_NO_TRANS_UPDATE);
|
||||||
thd->transaction.cleanup();
|
|
||||||
break;
|
break;
|
||||||
default: /* Impossible */
|
default: /* Impossible */
|
||||||
send_ok(&thd->net);
|
send_ok(&thd->net);
|
||||||
|
@ -154,7 +154,7 @@ typedef struct st_table_list {
|
|||||||
|
|
||||||
typedef struct st_changed_table_list {
|
typedef struct st_changed_table_list {
|
||||||
struct st_changed_table_list *next;
|
struct st_changed_table_list *next;
|
||||||
char *key, *table_name;
|
char *key;
|
||||||
uint32 key_length;
|
uint32 key_length;
|
||||||
} CHANGED_TABLE_LIST;
|
} CHANGED_TABLE_LIST;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user