diff options
author | unknown <monty@donna.mysql.fi> | 2001-05-17 00:46:50 +0300 |
---|---|---|
committer | unknown <monty@donna.mysql.fi> | 2001-05-17 00:46:50 +0300 |
commit | b12ff6f0a70aebcbd6cb8909cdaf10a5d7f44501 (patch) | |
tree | bfa83a61c2689e0f64e7be02d414bcf366c068a1 /sql/sql_insert.cc | |
parent | 81f6b4585275ccf2650a70685301b1b9ed4f66b5 (diff) | |
download | mariadb-git-b12ff6f0a70aebcbd6cb8909cdaf10a5d7f44501.tar.gz |
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.
Docs/manual.texi:
Added new section about crashed MyISAM tables.
Cleaned up subsections for InnoDB
client/mysql.cc:
Cleanup
myisam/mi_rkey.c:
Cleanup
myisam/mi_search.c:
Fixed wrong casts in debug messages
myisammrg/myrg_rrnd.c:
Fixed bug when using files > 4G
mysys/getvar.c:
Changed to use longlong to support arguments up to 4G
mysys/thr_lock.c:
Fix for delay insert
sql/mysqld.cc:
Increased default size for temporary tables
sql/sql_base.cc:
Fixed bug in SELECT db1.table.* FROM db1.table,db2.table
sql/sql_insert.cc:
Fixed bug in INSERT DELAYED when doing shutdown and a table was locked
sql/sql_select.cc:
Changed that tmp_table_size =4G-1 means unlimited.
Diffstat (limited to 'sql/sql_insert.cc')
-rw-r--r-- | sql/sql_insert.cc | 13 |
1 files changed, 9 insertions, 4 deletions
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); |