- renaming TMP_TABLE to NON_TRANSACTIONAL_TMP_TABLE because this is

what it actually means (Monty approved the renaming)
- correcting description of transaction_alloc command-line options
(our manual is correct)
- fix for a failure of rpl_trigger.
parent 825ad05e
...@@ -89,12 +89,14 @@ INSERT INTO t1 VALUES (test_replication_sf()); ...@@ -89,12 +89,14 @@ INSERT INTO t1 VALUES (test_replication_sf());
--exec diff $MYSQLTEST_VARDIR/tmp/rpl_rand_master.sql $MYSQLTEST_VARDIR/tmp/rpl_rand_slave.sql --exec diff $MYSQLTEST_VARDIR/tmp/rpl_rand_master.sql $MYSQLTEST_VARDIR/tmp/rpl_rand_slave.sql
# Cleanup # Cleanup
connection master;
--disable_warnings --disable_warnings
DROP PROCEDURE IF EXISTS test_replication_sp1; DROP PROCEDURE IF EXISTS test_replication_sp1;
DROP PROCEDURE IF EXISTS test_replication_sp2; DROP PROCEDURE IF EXISTS test_replication_sp2;
DROP FUNCTION IF EXISTS test_replication_sf; DROP FUNCTION IF EXISTS test_replication_sf;
DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t1;
--enable_warnings --enable_warnings
--sync_slave_with_master
# If all is good, when can cleanup our dump files. # If all is good, when can cleanup our dump files.
--system rm $MYSQLTEST_VARDIR/tmp/rpl_rand_master.sql --system rm $MYSQLTEST_VARDIR/tmp/rpl_rand_master.sql
......
...@@ -544,7 +544,7 @@ TABLE_LIST *mysql_lock_have_duplicate(THD *thd, TABLE_LIST *needle, ...@@ -544,7 +544,7 @@ TABLE_LIST *mysql_lock_have_duplicate(THD *thd, TABLE_LIST *needle,
goto end; goto end;
/* A temporary table does not have locks. */ /* A temporary table does not have locks. */
if (table->s->tmp_table == TMP_TABLE) if (table->s->tmp_table == NON_TRANSACTIONAL_TMP_TABLE)
goto end; goto end;
/* Get command lock or LOCK TABLES lock. Maybe empty for INSERT DELAYED. */ /* Get command lock or LOCK TABLES lock. Maybe empty for INSERT DELAYED. */
...@@ -569,7 +569,7 @@ TABLE_LIST *mysql_lock_have_duplicate(THD *thd, TABLE_LIST *needle, ...@@ -569,7 +569,7 @@ TABLE_LIST *mysql_lock_have_duplicate(THD *thd, TABLE_LIST *needle,
if (haystack->placeholder()) if (haystack->placeholder())
continue; continue;
table2= haystack->table; table2= haystack->table;
if (table2->s->tmp_table == TMP_TABLE) if (table2->s->tmp_table == NON_TRANSACTIONAL_TMP_TABLE)
continue; continue;
/* All tables in list must be in lock. */ /* All tables in list must be in lock. */
...@@ -655,7 +655,7 @@ static MYSQL_LOCK *get_lock_data(THD *thd, TABLE **table_ptr, uint count, ...@@ -655,7 +655,7 @@ static MYSQL_LOCK *get_lock_data(THD *thd, TABLE **table_ptr, uint count,
*write_lock_used=0; *write_lock_used=0;
for (i=tables=lock_count=0 ; i < count ; i++) for (i=tables=lock_count=0 ; i < count ; i++)
{ {
if (table_ptr[i]->s->tmp_table != TMP_TABLE) if (table_ptr[i]->s->tmp_table != NON_TRANSACTIONAL_TMP_TABLE)
{ {
tables+=table_ptr[i]->file->lock_count(); tables+=table_ptr[i]->file->lock_count();
lock_count++; lock_count++;
...@@ -697,7 +697,7 @@ static MYSQL_LOCK *get_lock_data(THD *thd, TABLE **table_ptr, uint count, ...@@ -697,7 +697,7 @@ static MYSQL_LOCK *get_lock_data(THD *thd, TABLE **table_ptr, uint count,
TABLE *table; TABLE *table;
enum thr_lock_type lock_type; enum thr_lock_type lock_type;
if ((table=table_ptr[i])->s->tmp_table == TMP_TABLE) if ((table=table_ptr[i])->s->tmp_table == NON_TRANSACTIONAL_TMP_TABLE)
continue; continue;
lock_type= table->reginfo.lock_type; lock_type= table->reginfo.lock_type;
if (lock_type >= TL_WRITE_ALLOW_WRITE) if (lock_type >= TL_WRITE_ALLOW_WRITE)
......
...@@ -6120,12 +6120,12 @@ The minimum value for this variable is 4096.", ...@@ -6120,12 +6120,12 @@ The minimum value for this variable is 4096.",
(gptr*) &max_system_variables.tmp_table_size, 0, GET_ULL, (gptr*) &max_system_variables.tmp_table_size, 0, GET_ULL,
REQUIRED_ARG, 32*1024*1024L, 1024, MAX_MEM_TABLE_SIZE, 0, 1, 0}, REQUIRED_ARG, 32*1024*1024L, 1024, MAX_MEM_TABLE_SIZE, 0, 1, 0},
{"transaction_alloc_block_size", OPT_TRANS_ALLOC_BLOCK_SIZE, {"transaction_alloc_block_size", OPT_TRANS_ALLOC_BLOCK_SIZE,
"Allocation block size for transactions to be stored in binary log", "Allocation block size for various transaction-related structures",
(gptr*) &global_system_variables.trans_alloc_block_size, (gptr*) &global_system_variables.trans_alloc_block_size,
(gptr*) &max_system_variables.trans_alloc_block_size, 0, GET_ULONG, (gptr*) &max_system_variables.trans_alloc_block_size, 0, GET_ULONG,
REQUIRED_ARG, QUERY_ALLOC_BLOCK_SIZE, 1024, ~0L, 0, 1024, 0}, REQUIRED_ARG, QUERY_ALLOC_BLOCK_SIZE, 1024, ~0L, 0, 1024, 0},
{"transaction_prealloc_size", OPT_TRANS_PREALLOC_SIZE, {"transaction_prealloc_size", OPT_TRANS_PREALLOC_SIZE,
"Persistent buffer for transactions to be stored in binary log", "Persistent buffer for various transaction-related structures",
(gptr*) &global_system_variables.trans_prealloc_size, (gptr*) &global_system_variables.trans_prealloc_size,
(gptr*) &max_system_variables.trans_prealloc_size, 0, GET_ULONG, (gptr*) &max_system_variables.trans_prealloc_size, 0, GET_ULONG,
REQUIRED_ARG, TRANS_ALLOC_PREALLOC_SIZE, 1024, ~0L, 0, 1024, 0}, REQUIRED_ARG, TRANS_ALLOC_PREALLOC_SIZE, 1024, ~0L, 0, 1024, 0},
......
...@@ -2950,7 +2950,7 @@ TABLE *open_temporary_table(THD *thd, const char *path, const char *db, ...@@ -2950,7 +2950,7 @@ TABLE *open_temporary_table(THD *thd, const char *path, const char *db,
share= tmp_table->s; share= tmp_table->s;
tmp_table->reginfo.lock_type=TL_WRITE; // Simulate locked tmp_table->reginfo.lock_type=TL_WRITE; // Simulate locked
share->tmp_table= (tmp_table->file->has_transactions() ? share->tmp_table= (tmp_table->file->has_transactions() ?
TRANSACTIONAL_TMP_TABLE : TMP_TABLE); TRANSACTIONAL_TMP_TABLE : NON_TRANSACTIONAL_TMP_TABLE);
share->table_cache_key= (char*) (tmp_table+1); share->table_cache_key= (char*) (tmp_table+1);
share->db= share->table_cache_key; share->db= share->table_cache_key;
share->key_length= (uint) (strmov(((char*) (share->table_name= share->key_length= (uint) (strmov(((char*) (share->table_name=
......
...@@ -179,7 +179,7 @@ exit: ...@@ -179,7 +179,7 @@ exit:
orig_table_list->table_name= (char*) table->s->table_name; orig_table_list->table_name= (char*) table->s->table_name;
orig_table_list->table_name_length= strlen((char*)table->s->table_name); orig_table_list->table_name_length= strlen((char*)table->s->table_name);
table->derived_select_number= first_select->select_number; table->derived_select_number= first_select->select_number;
table->s->tmp_table= TMP_TABLE; table->s->tmp_table= NON_TRANSACTIONAL_TMP_TABLE;
#ifndef NO_EMBEDDED_ACCESS_CHECKS #ifndef NO_EMBEDDED_ACCESS_CHECKS
if (orig_table_list->referencing_view) if (orig_table_list->referencing_view)
table->grant= orig_table_list->grant; table->grant= orig_table_list->grant;
......
...@@ -9165,7 +9165,7 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields, ...@@ -9165,7 +9165,7 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
table->s->table_name= table->s->path= tmpname; table->s->table_name= table->s->path= tmpname;
table->s->db= ""; table->s->db= "";
table->s->blob_ptr_size= mi_portable_sizeof_char_ptr; table->s->blob_ptr_size= mi_portable_sizeof_char_ptr;
table->s->tmp_table= TMP_TABLE; table->s->tmp_table= NON_TRANSACTIONAL_TMP_TABLE;
table->s->db_low_byte_first=1; // True for HEAP and MyISAM table->s->db_low_byte_first=1; // True for HEAP and MyISAM
table->s->table_charset= param->table_charset; table->s->table_charset= param->table_charset;
table->s->keys_for_keyread.init(); table->s->keys_for_keyread.init();
......
...@@ -55,7 +55,8 @@ typedef struct st_grant_info ...@@ -55,7 +55,8 @@ typedef struct st_grant_info
ulong orig_want_privilege; ulong orig_want_privilege;
} GRANT_INFO; } GRANT_INFO;
enum tmp_table_type {NO_TMP_TABLE=0, TMP_TABLE=1, TRANSACTIONAL_TMP_TABLE=2, enum tmp_table_type {NO_TMP_TABLE=0,
NON_TRANSACTIONAL_TMP_TABLE=1, TRANSACTIONAL_TMP_TABLE=2,
SYSTEM_TMP_TABLE=3}; SYSTEM_TMP_TABLE=3};
enum frm_type_enum enum frm_type_enum
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment