summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
Diffstat (limited to 'sql')
-rw-r--r--sql/lock.cc8
-rw-r--r--sql/log_event.cc9
-rw-r--r--sql/log_event.h8
-rw-r--r--sql/mysqld.cc4
-rw-r--r--sql/records.cc3
-rw-r--r--sql/sql_base.cc2
-rw-r--r--sql/sql_derived.cc2
-rw-r--r--sql/table.h2
8 files changed, 22 insertions, 16 deletions
diff --git a/sql/lock.cc b/sql/lock.cc
index a93033bfdd0..414afd5b3f6 100644
--- a/sql/lock.cc
+++ b/sql/lock.cc
@@ -582,7 +582,7 @@ TABLE_LIST *mysql_lock_have_duplicate(THD *thd, TABLE_LIST *needle,
goto end;
/* 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;
/* Get command lock or LOCK TABLES lock. Maybe empty for INSERT DELAYED. */
@@ -607,7 +607,7 @@ TABLE_LIST *mysql_lock_have_duplicate(THD *thd, TABLE_LIST *needle,
if (haystack->placeholder())
continue;
table2= haystack->table;
- if (table2->s->tmp_table == TMP_TABLE)
+ if (table2->s->tmp_table == NON_TRANSACTIONAL_TMP_TABLE)
continue;
/* All tables in list must be in lock. */
@@ -694,7 +694,7 @@ static MYSQL_LOCK *get_lock_data(THD *thd, TABLE **table_ptr, uint count,
*write_lock_used=0;
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();
lock_count++;
@@ -736,7 +736,7 @@ static MYSQL_LOCK *get_lock_data(THD *thd, TABLE **table_ptr, uint count,
TABLE *table;
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;
lock_type= table->reginfo.lock_type;
if (lock_type >= TL_WRITE_ALLOW_WRITE)
diff --git a/sql/log_event.cc b/sql/log_event.cc
index 6dae0342886..52bf46cb828 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -75,8 +75,7 @@ public:
~Write_on_release_cache()
{
- if (!my_b_copy_to_file(m_cache, m_file))
- reinit_io_cache(m_cache, WRITE_CACHE, 0L, FALSE, TRUE);
+ copy_event_cache_to_file_and_reinit(m_cache, m_file);
if (m_flags | FLUSH_F)
fflush(m_file);
}
@@ -6320,10 +6319,8 @@ void Rows_log_event::print_helper(FILE *file,
if (get_flags(STMT_END_F))
{
- my_b_copy_to_file(head, file);
- my_b_copy_to_file(body, file);
- reinit_io_cache(head, WRITE_CACHE, 0, FALSE, TRUE);
- reinit_io_cache(body, WRITE_CACHE, 0, FALSE, TRUE);
+ copy_event_cache_to_file_and_reinit(head, file);
+ copy_event_cache_to_file_and_reinit(body, file);
}
}
#endif
diff --git a/sql/log_event.h b/sql/log_event.h
index 7cd231a8353..466271fcd5c 100644
--- a/sql/log_event.h
+++ b/sql/log_event.h
@@ -2476,4 +2476,12 @@ private:
#endif
};
+static inline bool copy_event_cache_to_file_and_reinit(IO_CACHE *cache,
+ FILE *file)
+{
+ return
+ my_b_copy_to_file(cache, file) ||
+ reinit_io_cache(cache, WRITE_CACHE, 0, FALSE, TRUE);
+}
+
#endif /* _log_event_h */
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index 758dc54316e..b7e359508c9 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -6435,12 +6435,12 @@ The minimum value for this variable is 4096.",
(gptr*) &max_system_variables.tmp_table_size, 0, GET_ULL,
REQUIRED_ARG, 16*1024*1024L, 1024, MAX_MEM_TABLE_SIZE, 0, 1, 0},
{"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*) &max_system_variables.trans_alloc_block_size, 0, GET_ULONG,
REQUIRED_ARG, QUERY_ALLOC_BLOCK_SIZE, 1024, ~0L, 0, 1024, 0},
{"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*) &max_system_variables.trans_prealloc_size, 0, GET_ULONG,
REQUIRED_ARG, TRANS_ALLOC_PREALLOC_SIZE, 1024, ~0L, 0, 1024, 0},
diff --git a/sql/records.cc b/sql/records.cc
index 0923ab1d75e..0fb9f4f9650 100644
--- a/sql/records.cc
+++ b/sql/records.cc
@@ -150,7 +150,8 @@ void init_read_record(READ_RECORD *info,THD *thd, TABLE *table,
info->file= table->file;
info->forms= &info->table; /* Only one table */
- if (table->s->tmp_table == TMP_TABLE && !table->sort.addon_field)
+ if (table->s->tmp_table == NON_TRANSACTIONAL_TMP_TABLE &&
+ !table->sort.addon_field)
VOID(table->file->extra(HA_EXTRA_MMAP));
if (table->sort.addon_field)
diff --git a/sql/sql_base.cc b/sql/sql_base.cc
index e764c498059..02191959233 100644
--- a/sql/sql_base.cc
+++ b/sql/sql_base.cc
@@ -3752,7 +3752,7 @@ TABLE *open_temporary_table(THD *thd, const char *path, const char *db,
tmp_table->reginfo.lock_type= TL_WRITE; // Simulate locked
share->tmp_table= (tmp_table->file->has_transactions() ?
- TRANSACTIONAL_TMP_TABLE : TMP_TABLE);
+ TRANSACTIONAL_TMP_TABLE : NON_TRANSACTIONAL_TMP_TABLE);
if (link_in_list)
{
diff --git a/sql/sql_derived.cc b/sql/sql_derived.cc
index 5712fbceac8..89bd7958c86 100644
--- a/sql/sql_derived.cc
+++ b/sql/sql_derived.cc
@@ -179,7 +179,7 @@ exit:
orig_table_list->table_name= table->s->table_name.str;
orig_table_list->table_name_length= table->s->table_name.length;
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
if (orig_table_list->referencing_view)
table->grant= orig_table_list->grant;
diff --git a/sql/table.h b/sql/table.h
index 54c820d391c..8538177a1ee 100644
--- a/sql/table.h
+++ b/sql/table.h
@@ -58,7 +58,7 @@ typedef struct st_grant_info
enum tmp_table_type
{
- NO_TMP_TABLE, TMP_TABLE, TRANSACTIONAL_TMP_TABLE,
+ NO_TMP_TABLE, NON_TRANSACTIONAL_TMP_TABLE, TRANSACTIONAL_TMP_TABLE,
INTERNAL_TMP_TABLE, SYSTEM_TMP_TABLE
};