mirror of
https://github.com/MariaDB/server.git
synced 2026-05-16 20:07:13 +02:00
Bug#34374: mysql generates incorrect warning
an item was evaluated unnecessary, fix that by checking preconditions before evaluating the item sql/sql_select.cc: an item was evaluated unnecessary, fix that by checking preconditions before evaluating the item
This commit is contained in:
parent
255f8feb4c
commit
f1906c62d5
4 changed files with 24 additions and 8 deletions
|
|
@ -494,3 +494,11 @@ SELECT a FROM t1 WHERE MATCH a AGAINST ('+city* of*' IN BOOLEAN MODE);
|
|||
a
|
||||
City Of God
|
||||
DROP TABLE t1;
|
||||
create table t1(a text,b date,fulltext index(a))engine=myisam;
|
||||
insert into t1 set a='water',b='2008-08-04';
|
||||
select 1 from t1 where match(a) against ('water' in boolean mode) and b>='2008-08-01';
|
||||
1
|
||||
1
|
||||
drop table t1;
|
||||
show warnings;
|
||||
Level Code Message
|
||||
|
|
|
|||
|
|
@ -418,3 +418,12 @@ SELECT a FROM t1 WHERE MATCH a AGAINST ('+city* of*' IN BOOLEAN MODE);
|
|||
DROP TABLE t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
||||
#
|
||||
# bug#34374 - mysql generates incorrect warning
|
||||
#
|
||||
create table t1(a text,b date,fulltext index(a))engine=myisam;
|
||||
insert into t1 set a='water',b='2008-08-04';
|
||||
select 1 from t1 where match(a) against ('water' in boolean mode) and b>='2008-08-01';
|
||||
drop table t1;
|
||||
show warnings;
|
||||
|
|
|
|||
|
|
@ -39,8 +39,7 @@ static ulonglong getopt_ull(char *arg, const struct my_option *optp,
|
|||
static double getopt_double(char *arg, const struct my_option *optp, int *err);
|
||||
static void init_variables(const struct my_option *options,
|
||||
init_func_p init_one_value);
|
||||
static void init_one_value(const struct my_option *option, uchar* *variable,
|
||||
longlong value);
|
||||
static void init_one_value(const struct my_option *opt, uchar* *, longlong);
|
||||
static void fini_one_value(const struct my_option *option, uchar* *variable,
|
||||
longlong value);
|
||||
static int setval(const struct my_option *opts, uchar **value, char *argument,
|
||||
|
|
|
|||
|
|
@ -3547,16 +3547,16 @@ add_ft_keys(DYNAMIC_ARRAY *keyuse_array,
|
|||
Item_func *arg0=(Item_func *)(func->arguments()[0]),
|
||||
*arg1=(Item_func *)(func->arguments()[1]);
|
||||
if (arg1->const_item() &&
|
||||
((functype == Item_func::GE_FUNC && arg1->val_real() > 0) ||
|
||||
(functype == Item_func::GT_FUNC && arg1->val_real() >=0)) &&
|
||||
arg0->type() == Item::FUNC_ITEM &&
|
||||
arg0->functype() == Item_func::FT_FUNC)
|
||||
arg0->functype() == Item_func::FT_FUNC &&
|
||||
((functype == Item_func::GE_FUNC && arg1->val_real() > 0) ||
|
||||
(functype == Item_func::GT_FUNC && arg1->val_real() >=0)))
|
||||
cond_func=(Item_func_match *) arg0;
|
||||
else if (arg0->const_item() &&
|
||||
((functype == Item_func::LE_FUNC && arg0->val_real() > 0) ||
|
||||
(functype == Item_func::LT_FUNC && arg0->val_real() >=0)) &&
|
||||
arg1->type() == Item::FUNC_ITEM &&
|
||||
arg1->functype() == Item_func::FT_FUNC)
|
||||
arg1->functype() == Item_func::FT_FUNC &&
|
||||
((functype == Item_func::LE_FUNC && arg0->val_real() > 0) ||
|
||||
(functype == Item_func::LT_FUNC && arg0->val_real() >=0)))
|
||||
cond_func=(Item_func_match *) arg1;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue