Merge 10.4 into 10.5
This commit is contained in:
commit
8570a6a093
@ -2460,7 +2460,38 @@ count(*)+sleep(0)
|
||||
2
|
||||
drop table t1;
|
||||
#
|
||||
# Start of 10.3 tests
|
||||
# MDEV-25112: MIN/MAX optimization for query containing BETWEEN in WHERE
|
||||
#
|
||||
create table t1 (a int) engine=myisam;
|
||||
insert into t1 values (267), (273), (287), (303), (308);
|
||||
select max(a) from t1 where a < 303 and (a between 267 AND 287);
|
||||
max(a)
|
||||
287
|
||||
explain select max(a) from t1 where a < 303 and (a between 267 AND 287);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where
|
||||
select min(a) from t1 where a > 267 and (a between 273 AND 303);
|
||||
min(a)
|
||||
273
|
||||
explain select min(a) from t1 where a > 267 and (a between 273 AND 303);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where
|
||||
create index idx on t1(a);
|
||||
select max(a) from t1 where a < 303 and (a between 267 AND 287);
|
||||
max(a)
|
||||
287
|
||||
explain select max(a) from t1 where a < 303 and (a between 267 AND 287);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||
select min(a) from t1 where a > 267 and (a between 273 AND 303);
|
||||
min(a)
|
||||
273
|
||||
explain select min(a) from t1 where a > 267 and (a between 273 AND 303);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||
drop table t1;
|
||||
#
|
||||
# End of 10.2 tests
|
||||
#
|
||||
#
|
||||
# MDEV-9408 CREATE TABLE SELECT MAX(int_column) creates different columns for table vs view
|
||||
@ -2492,3 +2523,6 @@ t2 CREATE TABLE `t2` (
|
||||
DROP TABLE t2;
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of 10.3 tests
|
||||
#
|
||||
|
@ -1705,7 +1705,33 @@ select count(*)+sleep(0) from t1;
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo # Start of 10.3 tests
|
||||
--echo # MDEV-25112: MIN/MAX optimization for query containing BETWEEN in WHERE
|
||||
--echo #
|
||||
|
||||
create table t1 (a int) engine=myisam;
|
||||
insert into t1 values (267), (273), (287), (303), (308);
|
||||
|
||||
let $q1=
|
||||
select max(a) from t1 where a < 303 and (a between 267 AND 287);
|
||||
let $q2=
|
||||
select min(a) from t1 where a > 267 and (a between 273 AND 303);
|
||||
|
||||
eval $q1;
|
||||
eval explain $q1;
|
||||
eval $q2;
|
||||
eval explain $q2;
|
||||
|
||||
create index idx on t1(a);
|
||||
|
||||
eval $q1;
|
||||
eval explain $q1;
|
||||
eval $q2;
|
||||
eval explain $q2;
|
||||
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.2 tests
|
||||
--echo #
|
||||
|
||||
--echo #
|
||||
@ -1730,3 +1756,7 @@ DROP TABLE t2;
|
||||
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.3 tests
|
||||
--echo #
|
||||
|
@ -1,3 +1,5 @@
|
||||
--- /home/alice/git/10.3/mysql-test/suite/engines/funcs/r/rpl_sp,myisam,mix.result~ 2021-03-19 17:27:12.935559866 +0100
|
||||
+++ /home/alice/git/10.3/mysql-test/suite/engines/funcs/r/rpl_sp,myisam,mix.reject 2021-03-19 17:27:14.071534938 +0100
|
||||
@@ -126,12 +126,15 @@
|
||||
show warnings;
|
||||
Level Code Message
|
||||
|
@ -86,7 +86,7 @@ my_off_t my_tell(File fd, myf MyFlags)
|
||||
DBUG_ENTER("my_tell");
|
||||
DBUG_PRINT("my",("fd: %d MyFlags: %lu",fd, MyFlags));
|
||||
DBUG_ASSERT(fd >= 0);
|
||||
#if defined (HAVE_TELL) && !defined (_WIN32)
|
||||
#if defined (HAVE_TELL) && !defined (_WIN32) && !defined(_AIX)
|
||||
pos= tell(fd);
|
||||
#else
|
||||
pos= my_seek(fd, 0L, MY_SEEK_CUR,0);
|
||||
|
@ -842,7 +842,10 @@ static bool matching_cond(bool max_fl, TABLE_REF *ref, KEY *keyinfo,
|
||||
if (is_field_part)
|
||||
{
|
||||
if (between || eq_type)
|
||||
{
|
||||
*range_fl&= ~(NO_MAX_RANGE | NO_MIN_RANGE);
|
||||
*range_fl&= ~(max_fl ? NEAR_MAX : NEAR_MIN);
|
||||
}
|
||||
else
|
||||
{
|
||||
*range_fl&= ~(max_fl ? NO_MAX_RANGE : NO_MIN_RANGE);
|
||||
|
Loading…
x
Reference in New Issue
Block a user