Commit 7bba8128 authored by unknown's avatar unknown

full text function moving to current select (BUG#4822)


mysql-test/r/view.result:
  VIEW with full text
mysql-test/t/view.test:
  VIEW with full text
sql/table.cc:
  full text function moving to current select
parent 29c44654
...@@ -1103,3 +1103,16 @@ create view mysqltest.v1 as select a from mysqltest.t1; ...@@ -1103,3 +1103,16 @@ create view mysqltest.v1 as select a from mysqltest.t1;
alter view mysqltest.v1 as select b from mysqltest.t1; alter view mysqltest.v1 as select b from mysqltest.t1;
alter view mysqltest.v1 as select a from mysqltest.t1; alter view mysqltest.v1 as select a from mysqltest.t1;
drop database mysqltest; drop database mysqltest;
CREATE TABLE t1 (c1 int not null auto_increment primary key, c2 varchar(20), fulltext(c2));
insert into t1 (c2) VALUES ('real Beer'),('Water'),('Kossu'),('Coca-Cola'),('Vodka'),('Wine'),('almost real Beer');
select * from t1 WHERE match (c2) against ('Beer');
c1 c2
1 real Beer
7 almost real Beer
CREATE VIEW v1 AS SELECT * from t1 WHERE match (c2) against ('Beer');
select * from v1;
c1 c2
1 real Beer
7 almost real Beer
drop view v1;
drop table t1;
...@@ -1055,3 +1055,14 @@ create view mysqltest.v1 as select a from mysqltest.t1; ...@@ -1055,3 +1055,14 @@ create view mysqltest.v1 as select a from mysqltest.t1;
alter view mysqltest.v1 as select b from mysqltest.t1; alter view mysqltest.v1 as select b from mysqltest.t1;
alter view mysqltest.v1 as select a from mysqltest.t1; alter view mysqltest.v1 as select a from mysqltest.t1;
drop database mysqltest; drop database mysqltest;
#
# VIEW with full text
#
CREATE TABLE t1 (c1 int not null auto_increment primary key, c2 varchar(20), fulltext(c2));
insert into t1 (c2) VALUES ('real Beer'),('Water'),('Kossu'),('Coca-Cola'),('Vodka'),('Wine'),('almost real Beer');
select * from t1 WHERE match (c2) against ('Beer');
CREATE VIEW v1 AS SELECT * from t1 WHERE match (c2) against ('Beer');
select * from v1;
drop view v1;
drop table t1;
...@@ -1603,6 +1603,16 @@ bool st_table_list::setup_ancestor(THD *thd, Item **conds) ...@@ -1603,6 +1603,16 @@ bool st_table_list::setup_ancestor(THD *thd, Item **conds)
thd->restore_backup_item_arena(arena, &backup); thd->restore_backup_item_arena(arena, &backup);
} }
/* full text function moving to current select */
if (view->select_lex.ftfunc_list->elements)
{
Item_func_match *ifm;
List_iterator_fast<Item_func_match>
li(*(view->select_lex.ftfunc_list));
while ((ifm= li++))
current_select_save->ftfunc_list->push_front(ifm);
}
ok: ok:
thd->lex->select_lex.no_wrap_view_item= save_wrapper; thd->lex->select_lex.no_wrap_view_item= save_wrapper;
thd->lex->current_select= current_select_save; thd->lex->current_select= current_select_save;
......
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