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 | c6c418652948d336ef67082e5a7cd09b9c2449f6 (patch) | |
tree | 1a2213a0f797f794ee92f5b6660ac6ba58a6c411 /sql/sql_delete.cc | |
parent | d78fd4f63fbf3a1fe3efdbbdb0ac31980ec13fca (diff) | |
parent | 6827c26fcf12f94ea7c0eb2b509f5ea9b83101f7 (diff) | |
download | mariadb-git-c6c418652948d336ef67082e5a7cd09b9c2449f6.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())) |