summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mysql-test/t/delete.test6
-rw-r--r--sql/sql_delete.cc2
2 files changed, 7 insertions, 1 deletions
diff --git a/mysql-test/t/delete.test b/mysql-test/t/delete.test
index 13fa617b3cf..904d959d148 100644
--- a/mysql-test/t/delete.test
+++ b/mysql-test/t/delete.test
@@ -53,5 +53,11 @@ select * from t1 where misc > 5 and bool is null;
delete from t1 where misc > 5 and bool is null;
select * from t1 where misc > 5 and bool is null;
+select count(*) from t1;
+delete from t1 where 1 > 2;
+select count(*) from t1;
+delete from t1 where 3 > 2;
+select count(*) from t1;
+
drop table t1;
diff --git a/sql/sql_delete.cc b/sql/sql_delete.cc
index 1507d49ebd6..caa1e0e0312 100644
--- a/sql/sql_delete.cc
+++ b/sql/sql_delete.cc
@@ -54,7 +54,7 @@ int mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds, ORDER *order,
DBUG_RETURN(-1);
/* Test if the user wants to delete all rows */
- if (!using_limit && (!conds || conds->const_item()) &&
+ if (!using_limit && (!conds || (conds->const_item() && conds->val_int())) &&
!(specialflag & (SPECIAL_NO_NEW_FUNC | SPECIAL_SAFE_MODE)) && !safe_update)
{
deleted= table->file->records;