diff options
author | unknown <monty@mashka.mysql.fi> | 2003-02-17 02:14:37 +0200 |
---|---|---|
committer | unknown <monty@mashka.mysql.fi> | 2003-02-17 02:14:37 +0200 |
commit | 300b3fb64280ae3d982745b683029a2722b3daef (patch) | |
tree | 49ba5df63376ec1ba88e54e1446b29a777bba1a9 /sql/sql_delete.cc | |
parent | 8b4e28f8eb75dfa87196fefcf39854e89378e00e (diff) | |
download | mariadb-git-300b3fb64280ae3d982745b683029a2722b3daef.tar.gz |
Fixed multi-table-delete for InnoDB tables
Novell patches
Makefile.am:
Novell patch
client/mysql.cc:
Novell patch
configure.in:
Novell patch
extra/mysql_waitpid.c:
Novell patch
include/my_pthread.h:
Novell patch
include/mysql.h:
Novell patch
libmysql/libmysql.c:
Novell patch
libmysqld/libmysqld.c:
Novell patch
mysql-test/mysql-test-run.sh:
Don't use running server with --valgrind
mysql-test/r/innodb.result:
Updated results
mysql-test/r/rpl000001.result:
Updated results
mysql-test/r/rpl000004.result:
Updated results
mysql-test/r/rpl_log.result:
Updated results
mysql-test/r/type_blob.result:
Updated results
mysql-test/std_data/words.dat:
Added more words to make type_blob test relevant
mysql-test/t/innodb.test:
test of multi-table-delete
mysql-test/t/rpl000001.test:
Update for new word file
mysql-test/t/type_blob.test:
Test if BLOB IS NULL on NOT NULL column
mysys/my_init.c:
Novell patch
mysys/my_netware.c:
Novell patch
netware/Makefile.am:
Novell patch
netware/init_db.sql:
Novell patch
netware/isamchk.def:
Novell patch
netware/isamlog.def:
Novell patch
netware/libmysql.def:
Novell patch
netware/my_print_defaults.def:
Novell patch
netware/myisamchk.def:
Novell patch
netware/myisamlog.def:
Novell patch
netware/myisampack.def:
Novell patch
netware/mysql.def:
Novell patch
netware/mysql_install_db.c:
Novell patch
netware/mysql_install_db.def:
Novell patch
netware/mysql_test_run.def:
Novell patch
netware/mysqladmin.def:
Novell patch
netware/mysqlbinlog.def:
Novell patch
netware/mysqlcheck.def:
Novell patch
netware/mysqld_safe.c:
Novell patch
netware/mysqldump.def:
Novell patch
netware/mysqlimport.def:
Novell patch
netware/mysqlshow.def:
Novell patch
netware/mysqltest.def:
Novell patch
netware/pack_isam.def:
Novell patch
netware/perror.def:
Novell patch
netware/replace.def:
Novell patch
netware/resolveip.def:
Novell patch
netware/test_db.sql:
Novell patch
scripts/make_binary_distribution.sh:
Novell patch
sql/item_cmpfunc.h:
Optimization of 'IS NULL'
sql/mysql_priv.h:
Code cleanup
sql/mysqld.cc:
Novell patch
sql/net_pkg.cc:
Code cleanup
sql/records.cc:
Fixed multi-table-delete for InnoDB tables
sql/sql_delete.cc:
Fixed multi-table-delete for InnoDB tables
sql/sql_handler.cc:
Code cleanup
sql/sql_table.cc:
Code cleanup
sql/structs.h:
Fixed multi-table-delete for InnoDB tables
Diffstat (limited to 'sql/sql_delete.cc')
-rw-r--r-- | sql/sql_delete.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/sql/sql_delete.cc b/sql/sql_delete.cc index 4997305de6b..1507d49ebd6 100644 --- a/sql/sql_delete.cc +++ b/sql/sql_delete.cc @@ -393,6 +393,7 @@ void multi_delete::send_error(uint errcode,const char *err) int multi_delete::do_deletes(bool from_send_error) { int local_error= 0, counter= 0; + DBUG_ENTER("do_deletes"); if (from_send_error) { @@ -418,7 +419,12 @@ int multi_delete::do_deletes(bool from_send_error) } READ_RECORD info; - init_read_record(&info,thd,table,NULL,0,0); + init_read_record(&info,thd,table,NULL,0,1); + /* + Ignore any rows not found in reference tables as they may already have + been deleted by foreign key handling + */ + info.ignore_not_found_rows= 1; while (!(local_error=info.read_record(&info)) && !thd->killed) { if ((local_error=table->file->delete_row(table->record[0]))) @@ -432,7 +438,7 @@ int multi_delete::do_deletes(bool from_send_error) if (local_error == -1) // End of file local_error = 0; } - return local_error; + DBUG_RETURN(local_error); } |