mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge work:/home/bk/mysql into serg.mysql.com:/usr/home/serg/Abk/mysql
This commit is contained in:
@ -1,2 +1,3 @@
|
|||||||
sasha@mysql.sashanet.com
|
sasha@mysql.sashanet.com
|
||||||
monty@donna.mysql.fi
|
monty@donna.mysql.fi
|
||||||
|
serg@serg.mysql.com
|
||||||
|
@ -21,3 +21,7 @@ t2 CREATE TABLE `t2` (
|
|||||||
FULLTEXT KEY `tix` (`inhalt`)
|
FULLTEXT KEY `tix` (`inhalt`)
|
||||||
) TYPE=MyISAM
|
) TYPE=MyISAM
|
||||||
ticket inhalt
|
ticket inhalt
|
||||||
|
ticket inhalt
|
||||||
|
3 foobar
|
||||||
|
ticket inhalt
|
||||||
|
3 foobar
|
||||||
|
@ -42,7 +42,10 @@ ticket2.id = ttxt.ticket
|
|||||||
WHERE t1.id = ticket2.ticket and match(ttxt.inhalt) against ('foobar');
|
WHERE t1.id = ticket2.ticket and match(ttxt.inhalt) against ('foobar');
|
||||||
|
|
||||||
INSERT INTO t1 VALUES (3,3);
|
INSERT INTO t1 VALUES (3,3);
|
||||||
select t1.id FROM t2 as ttxt,t1 INNER JOIN t1 as ticket2 ON ticket2.id = ttxt.ticket WHERE t1.id = ticket2.ticket and match(ttxt.inhalt) against ('foobar');
|
select t1.id FROM t2 as ttxt,t1
|
||||||
|
INNER JOIN t1 as ticket2 ON ticket2.id = ttxt.ticket
|
||||||
|
WHERE t1.id = ticket2.ticket and
|
||||||
|
match(ttxt.inhalt) against ('foobar');
|
||||||
|
|
||||||
# Check that we get 'fulltext' index in SHOW CREATE
|
# Check that we get 'fulltext' index in SHOW CREATE
|
||||||
|
|
||||||
@ -53,4 +56,9 @@ show create table t2;
|
|||||||
|
|
||||||
select * from t2 where MATCH inhalt AGAINST (NULL);
|
select * from t2 where MATCH inhalt AGAINST (NULL);
|
||||||
|
|
||||||
|
# MATCH in HAVING (pretty useless, but still it should work)
|
||||||
|
|
||||||
|
select * from t2 where MATCH inhalt AGAINST ('foobar');
|
||||||
|
select * from t2 having MATCH inhalt AGAINST ('foobar');
|
||||||
|
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
@ -298,8 +298,8 @@ public:
|
|||||||
|
|
||||||
class Item_ref :public Item_ident
|
class Item_ref :public Item_ident
|
||||||
{
|
{
|
||||||
Item **ref;
|
|
||||||
public:
|
public:
|
||||||
|
Item **ref;
|
||||||
Item_ref(char *db_par,char *table_name_par,char *field_name_par)
|
Item_ref(char *db_par,char *table_name_par,char *field_name_par)
|
||||||
:Item_ident(db_par,table_name_par,field_name_par),ref(0) {}
|
:Item_ident(db_par,table_name_par,field_name_par),ref(0) {}
|
||||||
Item_ref(Item **item, char *table_name_par,char *field_name_par)
|
Item_ref(Item **item, char *table_name_par,char *field_name_par)
|
||||||
|
@ -1961,12 +1961,15 @@ bool Item_func_match::fix_fields(THD *thd,struct st_table_list *tlist)
|
|||||||
|
|
||||||
while ((item=li++))
|
while ((item=li++))
|
||||||
{
|
{
|
||||||
if (item->type() != Item::FIELD_ITEM || item->fix_fields(thd,tlist) ||
|
if (item->fix_fields(thd,tlist))
|
||||||
!item->used_tables())
|
return 1;
|
||||||
|
if (item->type() == Item::REF_ITEM)
|
||||||
|
li.replace(item= *((Item_ref *)item)->ref);
|
||||||
|
if (item->type() != Item::FIELD_ITEM || !item->used_tables())
|
||||||
return 1;
|
return 1;
|
||||||
used_tables_cache|=item->used_tables();
|
used_tables_cache|=item->used_tables();
|
||||||
}
|
}
|
||||||
/* check that all columns comes from the same table */
|
/* check that all columns come from the same table */
|
||||||
if (count_bits(used_tables_cache) != 1)
|
if (count_bits(used_tables_cache) != 1)
|
||||||
return 1;
|
return 1;
|
||||||
const_item_cache=0;
|
const_item_cache=0;
|
||||||
|
@ -178,8 +178,7 @@ mysql_select(THD *thd,TABLE_LIST *tables,List<Item> &fields,COND *conds,
|
|||||||
setup_fields(thd,tables,fields,1,&all_fields) ||
|
setup_fields(thd,tables,fields,1,&all_fields) ||
|
||||||
setup_conds(thd,tables,&conds) ||
|
setup_conds(thd,tables,&conds) ||
|
||||||
setup_order(thd,tables,fields,all_fields,order) ||
|
setup_order(thd,tables,fields,all_fields,order) ||
|
||||||
setup_group(thd,tables,fields,all_fields,group,&hidden_group_fields) ||
|
setup_group(thd,tables,fields,all_fields,group,&hidden_group_fields))
|
||||||
setup_ftfuncs(thd,tables,ftfuncs))
|
|
||||||
DBUG_RETURN(-1); /* purecov: inspected */
|
DBUG_RETURN(-1); /* purecov: inspected */
|
||||||
|
|
||||||
if (having)
|
if (having)
|
||||||
@ -191,6 +190,8 @@ mysql_select(THD *thd,TABLE_LIST *tables,List<Item> &fields,COND *conds,
|
|||||||
if (having->with_sum_func)
|
if (having->with_sum_func)
|
||||||
having->split_sum_func(all_fields);
|
having->split_sum_func(all_fields);
|
||||||
}
|
}
|
||||||
|
if (setup_ftfuncs(thd,tables,ftfuncs)) /* should be after having->fix_fields */
|
||||||
|
DBUG_RETURN(-1);
|
||||||
/*
|
/*
|
||||||
Check if one one uses a not constant column with group functions
|
Check if one one uses a not constant column with group functions
|
||||||
and no GROUP BY.
|
and no GROUP BY.
|
||||||
|
Reference in New Issue
Block a user