Commit 823a630c authored by unknown's avatar unknown

Merge mronstrom@bk-internal.mysql.com:/home/bk/mysql-5.1-new

into  zim.(none):/home/mikael/bug17947

parents e8f1b6d9 4f3a18d5
...@@ -214,7 +214,7 @@ AC_PROG_INSTALL ...@@ -214,7 +214,7 @@ AC_PROG_INSTALL
test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
# Not critical since the generated file is distributed # Not critical since the generated file is distributed
AC_PROG_YACC AC_CHECK_PROGS(YACC, ['bison -y -p MYSQL'])
AC_CHECK_PROG(PDFMANUAL, pdftex, manual.pdf) AC_CHECK_PROG(PDFMANUAL, pdftex, manual.pdf)
AC_CHECK_PROG(DVIS, tex, manual.dvi) AC_CHECK_PROG(DVIS, tex, manual.dvi)
......
...@@ -2539,3 +2539,17 @@ drop view v1; ...@@ -2539,3 +2539,17 @@ drop view v1;
// //
View Create View View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache `test`.`t1`.`id` AS `id` from `t1` v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sql_no_cache `test`.`t1`.`id` AS `id` from `t1`
create table t1(f1 int, f2 int);
create view v1 as select ta.f1 as a, tb.f1 as b from t1 ta, t1 tb where ta.f1=tb
.f1 and ta.f2=tb.f2;
insert into t1 values(1,1),(2,2);
create view v2 as select * from v1 where a > 1 with check option;
select * from v2;
a b
2 2
update v2 set b=3 where a=2;
select * from v2;
a b
3 3
drop view v2, v1;
drop table t1;
...@@ -2390,3 +2390,17 @@ show create view v1; ...@@ -2390,3 +2390,17 @@ show create view v1;
drop view v1; drop view v1;
// //
delimiter ;// delimiter ;//
#
# Bug#17726 Not checked empty list caused endless loop
#
create table t1(f1 int, f2 int);
create view v1 as select ta.f1 as a, tb.f1 as b from t1 ta, t1 tb where ta.f1=tb
.f1 and ta.f2=tb.f2;
insert into t1 values(1,1),(2,2);
create view v2 as select * from v1 where a > 1 with check option;
select * from v2;
update v2 set b=3 where a=2;
select * from v2;
drop view v2, v1;
drop table t1;
...@@ -2547,7 +2547,8 @@ Item_cond::fix_fields(THD *thd, Item **ref) ...@@ -2547,7 +2547,8 @@ Item_cond::fix_fields(THD *thd, Item **ref)
{ {
table_map tmp_table_map; table_map tmp_table_map;
while (item->type() == Item::COND_ITEM && while (item->type() == Item::COND_ITEM &&
((Item_cond*) item)->functype() == functype()) ((Item_cond*) item)->functype() == functype() &&
!((Item_cond*) item)->list.is_empty())
{ // Identical function { // Identical function
li.replace(((Item_cond*) item)->list); li.replace(((Item_cond*) item)->list);
((Item_cond*) item)->list.empty(); ((Item_cond*) item)->list.empty();
......
...@@ -27,6 +27,8 @@ ...@@ -27,6 +27,8 @@
#pragma implementation // gcc: Class implementation #pragma implementation // gcc: Class implementation
#endif #endif
#define MYSQL_LEX 1
#include "mysql_priv.h" #include "mysql_priv.h"
#include "procedure.h" #include "procedure.h"
#include "sql_analyse.h" #include "sql_analyse.h"
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
/* A lexical scanner on a temporary buffer with a yacc interface */ /* A lexical scanner on a temporary buffer with a yacc interface */
#define MYSQL_LEX 1
#include "mysql_priv.h" #include "mysql_priv.h"
#include "item_create.h" #include "item_create.h"
#include <m_ctype.h> #include <m_ctype.h>
......
...@@ -41,8 +41,12 @@ class Event_timed; ...@@ -41,8 +41,12 @@ class Event_timed;
#define LEX_YYSTYPE void * #define LEX_YYSTYPE void *
#else #else
#include "lex_symbol.h" #include "lex_symbol.h"
#if MYSQL_LEX
#include "sql_yacc.h" #include "sql_yacc.h"
#define LEX_YYSTYPE YYSTYPE * #define LEX_YYSTYPE YYSTYPE *
#else
#define LEX_YYSTYPE void *
#endif
#endif #endif
#endif #endif
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#define MYSQL_LEX 1
#include "mysql_priv.h" #include "mysql_priv.h"
#include "sql_repl.h" #include "sql_repl.h"
#include "rpl_filter.h" #include "rpl_filter.h"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment