mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
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
This commit is contained in:
@ -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;
|
|||||||
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;
|
||||||
|
10
sql/table.cc
10
sql/table.cc
@ -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;
|
||||||
|
Reference in New Issue
Block a user