From 2ba0846a60ac43e1ef477bdfd95c37901b6c7fe7 Mon Sep 17 00:00:00 2001 From: "monty@donna.mysql.fi" <> Date: Thu, 17 May 2001 00:46:50 +0300 Subject: Fixed bug when using MERGE on files > 4G Fixed bug in SELECT db1.table.* FROM db1.table,db2.table Fixed bug in INSERT DELAYED when doing shutdown and a table was locked Changed that tmp_table_size =4G-1 means unlimited. --- sql/sql_insert.cc | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'sql/sql_insert.cc') diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index 3be195b8984..cfd16df5d17 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -1088,6 +1088,7 @@ bool delayed_insert::handle_inserts(void) int error; uint max_rows; bool using_ignore=0; + delayed_row *row; DBUG_ENTER("handle_inserts"); /* Allow client to insert new rows */ @@ -1113,7 +1114,6 @@ bool delayed_insert::handle_inserts(void) table->file->extra(HA_EXTRA_WRITE_CACHE); pthread_mutex_lock(&mutex); - delayed_row *row; while ((row=rows.get())) { stacked_inserts--; @@ -1138,9 +1138,7 @@ bool delayed_insert::handle_inserts(void) if (write_record(table,&info)) { info.error++; // Ignore errors - pthread_mutex_lock(&LOCK_delayed_status); - delayed_insert_errors++; - pthread_mutex_unlock(&LOCK_delayed_status); + thread_safe_increment(delayed_insert_errors,&LOCK_delayed_status); row->log_query = 0; } if (using_ignore) @@ -1209,6 +1207,13 @@ bool delayed_insert::handle_inserts(void) DBUG_RETURN(0); err: + /* Remove all not used rows */ + while ((row=rows.get())) + { + delete row; + thread_safe_increment(delayed_insert_errors,&LOCK_delayed_status); + stacked_inserts--; + } thread_safe_increment(delayed_insert_errors, &LOCK_delayed_status); pthread_mutex_lock(&mutex); DBUG_RETURN(1); -- cgit v1.2.1