diff options
author | unknown <dlenev@mysql.com> | 2004-11-12 17:21:24 +0300 |
---|---|---|
committer | unknown <dlenev@mysql.com> | 2004-11-12 17:21:24 +0300 |
commit | aca57a3d2d1de42e56346c54d0d96620e59a38ee (patch) | |
tree | 1a2213a0f797f794ee92f5b6660ac6ba58a6c411 /sql/sql_delete.cc | |
parent | 980a4188f384902b902f6b5bad2258e0e78df646 (diff) | |
parent | bb43e8317fc3d78fd5f3d22a0ca0acf090540cd5 (diff) | |
download | mariadb-git-aca57a3d2d1de42e56346c54d0d96620e59a38ee.tar.gz |
Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/dlenev/src/mysql-5.0-bg5890
sql/sql_delete.cc:
Auto merged
Diffstat (limited to 'sql/sql_delete.cc')
-rw-r--r-- | sql/sql_delete.cc | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/sql/sql_delete.cc b/sql/sql_delete.cc index b8f560b3ef2..165a5409995 100644 --- a/sql/sql_delete.cc +++ b/sql/sql_delete.cc @@ -63,9 +63,14 @@ int mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds, SQL_LIST *order, if (thd->lex->duplicates == DUP_IGNORE) select_lex->no_error= 1; - /* Test if the user wants to delete all rows */ + /* + Test if the user wants to delete all rows and deletion doesn't have + any side-effects (because of triggers), so we can use optimized + handler::delete_all_rows() method. + */ if (!using_limit && const_cond && (!conds || conds->val_int()) && - !(specialflag & (SPECIAL_NO_NEW_FUNC | SPECIAL_SAFE_MODE))) + !(specialflag & (SPECIAL_NO_NEW_FUNC | SPECIAL_SAFE_MODE)) && + !(table->triggers && table->triggers->has_delete_triggers())) { deleted= table->file->records; if (!(error=table->file->delete_all_rows())) |