mirror of
https://github.com/MariaDB/server.git
synced 2025-01-20 22:12:30 +01:00
Merge mronstrom@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into zim.(none):/home/mikael/bug17947
This commit is contained in:
commit
823a630c13
8 changed files with 39 additions and 2 deletions
|
@ -214,7 +214,7 @@ AC_PROG_INSTALL
|
|||
test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
|
||||
|
||||
# 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(DVIS, tex, manual.dvi)
|
||||
|
||||
|
|
|
@ -2539,3 +2539,17 @@ drop view v1;
|
|||
//
|
||||
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`
|
||||
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;
|
|||
drop view v1;
|
||||
//
|
||||
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)
|
|||
{
|
||||
table_map tmp_table_map;
|
||||
while (item->type() == Item::COND_ITEM &&
|
||||
((Item_cond*) item)->functype() == functype())
|
||||
((Item_cond*) item)->functype() == functype() &&
|
||||
!((Item_cond*) item)->list.is_empty())
|
||||
{ // Identical function
|
||||
li.replace(((Item_cond*) item)->list);
|
||||
((Item_cond*) item)->list.empty();
|
||||
|
|
|
@ -27,6 +27,8 @@
|
|||
#pragma implementation // gcc: Class implementation
|
||||
#endif
|
||||
|
||||
#define MYSQL_LEX 1
|
||||
|
||||
#include "mysql_priv.h"
|
||||
#include "procedure.h"
|
||||
#include "sql_analyse.h"
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
|
||||
/* A lexical scanner on a temporary buffer with a yacc interface */
|
||||
|
||||
#define MYSQL_LEX 1
|
||||
#include "mysql_priv.h"
|
||||
#include "item_create.h"
|
||||
#include <m_ctype.h>
|
||||
|
|
|
@ -41,8 +41,12 @@ class Event_timed;
|
|||
#define LEX_YYSTYPE void *
|
||||
#else
|
||||
#include "lex_symbol.h"
|
||||
#if MYSQL_LEX
|
||||
#include "sql_yacc.h"
|
||||
#define LEX_YYSTYPE YYSTYPE *
|
||||
#else
|
||||
#define LEX_YYSTYPE void *
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||
|
||||
#define MYSQL_LEX 1
|
||||
#include "mysql_priv.h"
|
||||
#include "sql_repl.h"
|
||||
#include "rpl_filter.h"
|
||||
|
|
Loading…
Reference in a new issue