mirror of
https://github.com/MariaDB/server.git
synced 2025-05-29 21:42:28 +03:00
item_cmpfunc.cc:
Removed changes to the Item_func_between::fix_length_and_dec() made in the fix for bug#16377 query_cache.result: Corrected a test case after removing a fix for bug#16377 mysql-test/r/query_cache.result: Corrected a test case after removing a fix for bug#16377 sql/item_cmpfunc.cc: Removed changes to the Item_func_between::fix_length_and_dec() made in the fix for bug#16377
This commit is contained in:
parent
aa840645e6
commit
f3e838706d
@ -907,16 +907,19 @@ COUNT(*)
|
|||||||
0
|
0
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1292 Truncated incorrect datetime value: '20050327 invalid'
|
Warning 1292 Truncated incorrect datetime value: '20050327 invalid'
|
||||||
|
Warning 1292 Truncated incorrect datetime value: '20050327 invalid'
|
||||||
SELECT COUNT(*) FROM t1 WHERE date BETWEEN '20050326' AND '20050328 invalid';
|
SELECT COUNT(*) FROM t1 WHERE date BETWEEN '20050326' AND '20050328 invalid';
|
||||||
COUNT(*)
|
COUNT(*)
|
||||||
0
|
0
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1292 Truncated incorrect datetime value: '20050328 invalid'
|
Warning 1292 Truncated incorrect datetime value: '20050328 invalid'
|
||||||
|
Warning 1292 Truncated incorrect datetime value: '20050328 invalid'
|
||||||
SELECT COUNT(*) FROM t1 WHERE date BETWEEN '20050326' AND '20050327 invalid';
|
SELECT COUNT(*) FROM t1 WHERE date BETWEEN '20050326' AND '20050327 invalid';
|
||||||
COUNT(*)
|
COUNT(*)
|
||||||
0
|
0
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1292 Truncated incorrect datetime value: '20050327 invalid'
|
Warning 1292 Truncated incorrect datetime value: '20050327 invalid'
|
||||||
|
Warning 1292 Truncated incorrect datetime value: '20050327 invalid'
|
||||||
show status like "Qcache_queries_in_cache";
|
show status like "Qcache_queries_in_cache";
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_queries_in_cache 0
|
Qcache_queries_in_cache 0
|
||||||
|
@ -916,8 +916,30 @@ void Item_func_between::fix_length_and_dec()
|
|||||||
if (!args[0] || !args[1] || !args[2])
|
if (!args[0] || !args[1] || !args[2])
|
||||||
return;
|
return;
|
||||||
agg_cmp_type(thd, &cmp_type, args, 3);
|
agg_cmp_type(thd, &cmp_type, args, 3);
|
||||||
if (cmp_type == STRING_RESULT)
|
if (cmp_type == STRING_RESULT &&
|
||||||
agg_arg_charsets(cmp_collation, args, 3, MY_COLL_CMP_CONV);
|
agg_arg_charsets(cmp_collation, args, 3, MY_COLL_CMP_CONV))
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*
|
||||||
|
Make a special case of compare with date/time and longlong fields.
|
||||||
|
They are compared as integers, so for const item this time-consuming
|
||||||
|
conversion can be done only once, not for every single comparison
|
||||||
|
*/
|
||||||
|
if (args[0]->type() == FIELD_ITEM)
|
||||||
|
{
|
||||||
|
Field *field=((Item_field*) args[0])->field;
|
||||||
|
if (field->can_be_compared_as_longlong())
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
The following can't be recoded with || as convert_constant_item
|
||||||
|
changes the argument
|
||||||
|
*/
|
||||||
|
if (convert_constant_item(thd, field,&args[1]))
|
||||||
|
cmp_type=INT_RESULT; // Works for all types.
|
||||||
|
if (convert_constant_item(thd, field,&args[2]))
|
||||||
|
cmp_type=INT_RESULT; // Works for all types.
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user