Loading mysql-test/r/update.result +12 −0 Original line number Diff line number Diff line Loading @@ -251,3 +251,15 @@ f1 f2 1 1 2 2 drop table t1,t2; create table t1(f1 int); select DATABASE(); DATABASE() test update t1 set f1=1 where count(*)=1; ERROR HY000: Invalid use of group function select DATABASE(); DATABASE() test delete from t1 where count(*)=1; ERROR HY000: Invalid use of group function drop table t1; mysql-test/t/update.test +12 −0 Original line number Diff line number Diff line Loading @@ -215,4 +215,16 @@ UPDATE t1 SET t1.f2=(SELECT MAX(t2.f4) FROM t2 WHERE t2.f3=t1.f1); select * from t1; drop table t1,t2; # # Bug #13180 sometimes server accepts sum func in update/delete where condition # create table t1(f1 int); select DATABASE(); --error 1111 update t1 set f1=1 where count(*)=1; select DATABASE(); --error 1111 delete from t1 where count(*)=1; drop table t1; # End of 4.1 tests sql/sql_lex.cc +1 −0 Original line number Diff line number Diff line Loading @@ -171,6 +171,7 @@ void lex_start(THD *thd, uchar *buf,uint length) lex->sql_command= lex->orig_sql_command= SQLCOM_END; lex->duplicates= DUP_ERROR; lex->ignore= 0; thd->allow_sum_func= 0; lex->sphead= NULL; lex->spcont= NULL; lex->proc_list.first= 0; Loading sql/sql_prepare.cc +2 −2 Original line number Diff line number Diff line Loading @@ -2129,7 +2129,7 @@ void reinit_stmt_before_use(THD *thd, LEX *lex) lex->result->cleanup(); lex->result->set_thd(thd); } thd->allow_sum_func= 0; DBUG_VOID_RETURN; } Loading Loading
mysql-test/r/update.result +12 −0 Original line number Diff line number Diff line Loading @@ -251,3 +251,15 @@ f1 f2 1 1 2 2 drop table t1,t2; create table t1(f1 int); select DATABASE(); DATABASE() test update t1 set f1=1 where count(*)=1; ERROR HY000: Invalid use of group function select DATABASE(); DATABASE() test delete from t1 where count(*)=1; ERROR HY000: Invalid use of group function drop table t1;
mysql-test/t/update.test +12 −0 Original line number Diff line number Diff line Loading @@ -215,4 +215,16 @@ UPDATE t1 SET t1.f2=(SELECT MAX(t2.f4) FROM t2 WHERE t2.f3=t1.f1); select * from t1; drop table t1,t2; # # Bug #13180 sometimes server accepts sum func in update/delete where condition # create table t1(f1 int); select DATABASE(); --error 1111 update t1 set f1=1 where count(*)=1; select DATABASE(); --error 1111 delete from t1 where count(*)=1; drop table t1; # End of 4.1 tests
sql/sql_lex.cc +1 −0 Original line number Diff line number Diff line Loading @@ -171,6 +171,7 @@ void lex_start(THD *thd, uchar *buf,uint length) lex->sql_command= lex->orig_sql_command= SQLCOM_END; lex->duplicates= DUP_ERROR; lex->ignore= 0; thd->allow_sum_func= 0; lex->sphead= NULL; lex->spcont= NULL; lex->proc_list.first= 0; Loading
sql/sql_prepare.cc +2 −2 Original line number Diff line number Diff line Loading @@ -2129,7 +2129,7 @@ void reinit_stmt_before_use(THD *thd, LEX *lex) lex->result->cleanup(); lex->result->set_thd(thd); } thd->allow_sum_func= 0; DBUG_VOID_RETURN; } Loading