summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2021-03-20 13:04:36 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2021-03-20 13:04:36 +0200
commitd8dc8537e4f6cfb3b0c63123a8d9df5c1101970d (patch)
tree036edbea930caa77afe4fb2a8acef9242b54805b
parent550cf13eb3e8a25826a0fa67935fc28ee7adb0c8 (diff)
parent0f3045e4329d900cc95f84b5fe9ff5c9d96240c7 (diff)
downloadmariadb-git-d8dc8537e4f6cfb3b0c63123a8d9df5c1101970d.tar.gz
Merge 10.3 into 10.4
m---------libmariadb0
-rw-r--r--mysql-test/main/func_group.result36
-rw-r--r--mysql-test/main/func_group.test32
-rw-r--r--mysql-test/suite/engines/funcs/r/rpl_000015.result249
-rw-r--r--mysql-test/suite/engines/funcs/r/rpl_flushlog_loop.result56
-rw-r--r--mysql-test/suite/engines/funcs/r/rpl_server_id1.result8
-rw-r--r--mysql-test/suite/engines/funcs/r/rpl_sp,myisam,mix.rdiff2
-rw-r--r--mysql-test/suite/engines/funcs/t/rpl_000015.test32
-rw-r--r--mysql-test/suite/engines/funcs/t/rpl_flushlog_loop.test7
-rw-r--r--mysql-test/suite/engines/funcs/t/rpl_server_id1.test5
-rw-r--r--mysys/my_seek.c2
-rw-r--r--sql/opt_sum.cc3
12 files changed, 115 insertions, 317 deletions
diff --git a/libmariadb b/libmariadb
-Subproject a746c3af449a8754e78ad7971e59e79af7957cd
+Subproject fc431a035a21ac1d4ef25d9d3cd8c4d7e64a8ee
diff --git a/mysql-test/main/func_group.result b/mysql-test/main/func_group.result
index 9311a556191..fc6f93a938a 100644
--- a/mysql-test/main/func_group.result
+++ b/mysql-test/main/func_group.result
@@ -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
+#
diff --git a/mysql-test/main/func_group.test b/mysql-test/main/func_group.test
index bc2d6e9047d..10b92cbadca 100644
--- a/mysql-test/main/func_group.test
+++ b/mysql-test/main/func_group.test
@@ -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 #
diff --git a/mysql-test/suite/engines/funcs/r/rpl_000015.result b/mysql-test/suite/engines/funcs/r/rpl_000015.result
index 4ee1026ba00..56fc002ac53 100644
--- a/mysql-test/suite/engines/funcs/r/rpl_000015.result
+++ b/mysql-test/suite/engines/funcs/r/rpl_000015.result
@@ -7,241 +7,40 @@ master-bin.000001 329
connection slave;
include/stop_slave.inc
reset slave;
-show slave status;
-Slave_IO_State #
-Master_Host 127.0.0.1
-Master_User root
-Master_Port MASTER_PORT
-Connect_Retry #
-Master_Log_File
-Read_Master_Log_Pos 4
-Relay_Log_File #
-Relay_Log_Pos #
-Relay_Master_Log_File
-Slave_IO_Running No
-Slave_SQL_Running No
-Replicate_Do_DB
-Replicate_Ignore_DB
-Replicate_Do_Table
-Replicate_Ignore_Table
-Replicate_Wild_Do_Table
-Replicate_Wild_Ignore_Table
-Last_Errno 0
-Last_Error
-Skip_Counter 0
-Exec_Master_Log_Pos 0
-Relay_Log_Space #
-Until_Condition None
-Until_Log_File
-Until_Log_Pos 0
-Master_SSL_Allowed No
-Master_SSL_CA_File
-Master_SSL_CA_Path
-Master_SSL_Cert
-Master_SSL_Cipher
-Master_SSL_Key
-Seconds_Behind_Master #
-Master_SSL_Verify_Server_Cert No
-Last_IO_Errno 0
-Last_IO_Error
-Last_SQL_Errno 0
-Last_SQL_Error
-Replicate_Ignore_Server_Ids
-Master_Server_Id 1
-Master_SSL_Crl
-Master_SSL_Crlpath
-Using_Gtid No
-Gtid_IO_Pos
-Replicate_Do_Domain_Ids
-Replicate_Ignore_Domain_Ids
-Parallel_Mode conservative
-SQL_Delay 0
-SQL_Remaining_Delay NULL
-Slave_SQL_Running_State
-Slave_DDL_Groups 2
-Slave_Non_Transactional_Groups 0
-Slave_Transactional_Groups 2
+Slave_IO_Running = 'No'
+Slave_SQL_Running = 'No'
+Last_SQL_Errno = '0'
+Last_SQL_Error = ''
+Exec_Master_Log_Pos = '0'
change master to master_host='127.0.0.1';
-show slave status;
-Slave_IO_State #
-Master_Host 127.0.0.1
-Master_User root
-Master_Port MASTER_PORT
-Connect_Retry #
-Master_Log_File
-Read_Master_Log_Pos 4
-Relay_Log_File #
-Relay_Log_Pos #
-Relay_Master_Log_File
-Slave_IO_Running No
-Slave_SQL_Running No
-Replicate_Do_DB
-Replicate_Ignore_DB
-Replicate_Do_Table
-Replicate_Ignore_Table
-Replicate_Wild_Do_Table
-Replicate_Wild_Ignore_Table
-Last_Errno 0
-Last_Error
-Skip_Counter 0
-Exec_Master_Log_Pos 0
-Relay_Log_Space #
-Until_Condition None
-Until_Log_File
-Until_Log_Pos 0
-Master_SSL_Allowed No
-Master_SSL_CA_File
-Master_SSL_CA_Path
-Master_SSL_Cert
-Master_SSL_Cipher
-Master_SSL_Key
-Seconds_Behind_Master #
-Master_SSL_Verify_Server_Cert No
-Last_IO_Errno 0
-Last_IO_Error
-Last_SQL_Errno 0
-Last_SQL_Error
-Replicate_Ignore_Server_Ids
-Master_Server_Id 1
-Master_SSL_Crl
-Master_SSL_Crlpath
-Using_Gtid No
-Gtid_IO_Pos
-Replicate_Do_Domain_Ids
-Replicate_Ignore_Domain_Ids
-Parallel_Mode conservative
-SQL_Delay 0
-SQL_Remaining_Delay NULL
-Slave_SQL_Running_State
-Slave_DDL_Groups 2
-Slave_Non_Transactional_Groups 0
-Slave_Transactional_Groups 2
-change master to master_host='127.0.0.1',master_user='root',
+Slave_IO_Running = 'No'
+Slave_SQL_Running = 'No'
+Last_SQL_Errno = '0'
+Last_SQL_Error = ''
+Exec_Master_Log_Pos = '0'
+change master to master_host='127.0.0.1',master_user='root',
master_password='',master_port=MASTER_PORT;
-show slave status;
-Slave_IO_State #
-Master_Host 127.0.0.1
-Master_User root
-Master_Port MASTER_PORT
-Connect_Retry #
-Master_Log_File
-Read_Master_Log_Pos 4
-Relay_Log_File #
-Relay_Log_Pos #
-Relay_Master_Log_File
-Slave_IO_Running No
-Slave_SQL_Running No
-Replicate_Do_DB
-Replicate_Ignore_DB
-Replicate_Do_Table
-Replicate_Ignore_Table
-Replicate_Wild_Do_Table
-Replicate_Wild_Ignore_Table
-Last_Errno 0
-Last_Error
-Skip_Counter 0
-Exec_Master_Log_Pos 0
-Relay_Log_Space #
-Until_Condition None
-Until_Log_File
-Until_Log_Pos 0
-Master_SSL_Allowed No
-Master_SSL_CA_File
-Master_SSL_CA_Path
-Master_SSL_Cert
-Master_SSL_Cipher
-Master_SSL_Key
-Seconds_Behind_Master #
-Master_SSL_Verify_Server_Cert No
-Last_IO_Errno 0
-Last_IO_Error
-Last_SQL_Errno 0
-Last_SQL_Error
-Replicate_Ignore_Server_Ids
-Master_Server_Id 1
-Master_SSL_Crl
-Master_SSL_Crlpath
-Using_Gtid No
-Gtid_IO_Pos
-Replicate_Do_Domain_Ids
-Replicate_Ignore_Domain_Ids
-Parallel_Mode conservative
-SQL_Delay 0
-SQL_Remaining_Delay NULL
-Slave_SQL_Running_State
-Slave_DDL_Groups 2
-Slave_Non_Transactional_Groups 0
-Slave_Transactional_Groups 2
include/start_slave.inc
-show slave status;
-Slave_IO_State Waiting for master to send event
-Master_Host 127.0.0.1
-Master_User root
-Master_Port MASTER_PORT
-Connect_Retry 1
-Master_Log_File master-bin.000001
-Read_Master_Log_Pos 329
-Relay_Log_File slave-relay-bin.000002
-Relay_Log_Pos 629
-Relay_Master_Log_File master-bin.000001
-Slave_IO_Running Yes
-Slave_SQL_Running Yes
-Replicate_Do_DB
-Replicate_Ignore_DB
-Replicate_Do_Table
-Replicate_Ignore_Table
-Replicate_Wild_Do_Table
-Replicate_Wild_Ignore_Table
-Last_Errno 0
-Last_Error
-Skip_Counter 0
-Exec_Master_Log_Pos 329
-Relay_Log_Space 938
-Until_Condition None
-Until_Log_File
-Until_Log_Pos 0
-Master_SSL_Allowed No
-Master_SSL_CA_File
-Master_SSL_CA_Path
-Master_SSL_Cert
-Master_SSL_Cipher
-Master_SSL_Key
-Seconds_Behind_Master #
-Master_SSL_Verify_Server_Cert No
-Last_IO_Errno 0
-Last_IO_Error
-Last_SQL_Errno 0
-Last_SQL_Error
-Replicate_Ignore_Server_Ids
-Master_Server_Id 1
-Master_SSL_Crl
-Master_SSL_Crlpath
-Using_Gtid No
-Gtid_IO_Pos
-Replicate_Do_Domain_Ids
-Replicate_Ignore_Domain_Ids
-Parallel_Mode conservative
-SQL_Delay 0
-SQL_Remaining_Delay NULL
-Slave_SQL_Running_State Slave has read all relay log; waiting for the slave I/O thread to update it
-Slave_DDL_Groups 2
-Slave_Non_Transactional_Groups 0
-Slave_Transactional_Groups 2
+Slave_IO_Running = 'Yes'
+Slave_SQL_Running = 'Yes'
+Last_SQL_Errno = '0'
+Last_SQL_Error = ''
+Exec_Master_Log_Pos = '329'
connection master;
-drop table if exists t1;
create table t1 (n int, PRIMARY KEY(n));
insert into t1 values (10),(45),(90);
connection slave;
-connection slave;
SELECT * FROM t1 ORDER BY n;
-n 10
-n 45
-n 90
+n
+10
+45
+90
connection master;
SELECT * FROM t1 ORDER BY n;
-n 10
-n 45
-n 90
+n
+10
+45
+90
drop table t1;
connection slave;
include/rpl_end.inc
diff --git a/mysql-test/suite/engines/funcs/r/rpl_flushlog_loop.result b/mysql-test/suite/engines/funcs/r/rpl_flushlog_loop.result
index d05401bc446..527dd8dc983 100644
--- a/mysql-test/suite/engines/funcs/r/rpl_flushlog_loop.result
+++ b/mysql-test/suite/engines/funcs/r/rpl_flushlog_loop.result
@@ -10,59 +10,5 @@ change master to master_host='127.0.0.1',master_user='root',
master_password='',master_port=SLAVE_PORT;
include/start_slave.inc
flush logs;
-SHOW SLAVE STATUS;
-Slave_IO_State #
-Master_Host 127.0.0.1
-Master_User root
-Master_Port SLAVE_PORT
-Connect_Retry 60
-Master_Log_File slave-bin.000001
-Read_Master_Log_Pos 328
-Relay_Log_File #
-Relay_Log_Pos #
-Relay_Master_Log_File slave-bin.000001
-Slave_IO_Running Yes
-Slave_SQL_Running Yes
-Replicate_Do_DB
-Replicate_Ignore_DB
-Replicate_Do_Table
-Replicate_Ignore_Table #
-Replicate_Wild_Do_Table
-Replicate_Wild_Ignore_Table
-Last_Errno 0
-Last_Error
-Skip_Counter 0
-Exec_Master_Log_Pos 328
-Relay_Log_Space #
-Until_Condition None
-Until_Log_File
-Until_Log_Pos 0
-Master_SSL_Allowed No
-Master_SSL_CA_File
-Master_SSL_CA_Path
-Master_SSL_Cert
-Master_SSL_Cipher
-Master_SSL_Key
-Seconds_Behind_Master #
-Master_SSL_Verify_Server_Cert No
-Last_IO_Errno 0
-Last_IO_Error
-Last_SQL_Errno 0
-Last_SQL_Error
-Replicate_Ignore_Server_Ids
-Master_Server_Id 2
-Master_SSL_Crl
-Master_SSL_Crlpath
-Using_Gtid No
-Gtid_IO_Pos
-Replicate_Do_Domain_Ids
-Replicate_Ignore_Domain_Ids
-Parallel_Mode conservative
-SQL_Delay 0
-SQL_Remaining_Delay NULL
-Slave_SQL_Running_State Slave has read all relay log; waiting for the slave I/O thread to update it
-Slave_DDL_Groups 0
-Slave_Non_Transactional_Groups 0
-Slave_Transactional_Groups 0
-stop slave;
+include/stop_slave.inc
include/rpl_end.inc
diff --git a/mysql-test/suite/engines/funcs/r/rpl_server_id1.result b/mysql-test/suite/engines/funcs/r/rpl_server_id1.result
index 6450ea21d3d..001d1151843 100644
--- a/mysql-test/suite/engines/funcs/r/rpl_server_id1.result
+++ b/mysql-test/suite/engines/funcs/r/rpl_server_id1.result
@@ -5,9 +5,11 @@ create table t1 (n int);
reset master;
include/stop_slave.inc
change master to master_port=SLAVE_PORT;
-show slave status;
-Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Master_SSL_Crl Master_SSL_Crlpath Using_Gtid Gtid_IO_Pos Replicate_Do_Domain_Ids Replicate_Ignore_Domain_Ids Parallel_Mode SQL_Delay SQL_Remaining_Delay Slave_SQL_Running_State Slave_DDL_Groups Slave_Non_Transactional_Groups Slave_Transactional_Groups
- 127.0.0.1 root SLAVE_PORT 1 4 slave-relay-bin.000001 4 No No # # 0 0 0 256 None 0 No NULL No 0 0 1 No conservative 0 NULL 0 0 0
+Slave_IO_Running = 'No'
+Slave_SQL_Running = 'No'
+Last_SQL_Errno = '0'
+Last_SQL_Error = ''
+Exec_Master_Log_Pos = '0'
start slave;
insert into t1 values (1);
include/wait_for_slave_param.inc [Last_IO_Errno]
diff --git a/mysql-test/suite/engines/funcs/r/rpl_sp,myisam,mix.rdiff b/mysql-test/suite/engines/funcs/r/rpl_sp,myisam,mix.rdiff
index 47901f63a51..da41283e42f 100644
--- a/mysql-test/suite/engines/funcs/r/rpl_sp,myisam,mix.rdiff
+++ b/mysql-test/suite/engines/funcs/r/rpl_sp,myisam,mix.rdiff
@@ -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
diff --git a/mysql-test/suite/engines/funcs/t/rpl_000015.test b/mysql-test/suite/engines/funcs/t/rpl_000015.test
index 8d76fc674e5..8996affe667 100644
--- a/mysql-test/suite/engines/funcs/t/rpl_000015.test
+++ b/mysql-test/suite/engines/funcs/t/rpl_000015.test
@@ -11,39 +11,25 @@ save_master_pos;
connection slave;
--source include/stop_slave.inc
reset slave;
---vertical_results
---replace_result $MASTER_MYPORT MASTER_PORT
---replace_column 1 # 5 # 8 # 9 # 23 # 33 #
-show slave status;
+--let $status_items= Slave_IO_Running, Slave_SQL_Running, Last_SQL_Errno, Last_SQL_Error, Exec_Master_Log_Pos
+--source include/show_slave_status.inc
change master to master_host='127.0.0.1';
# The following needs to be cleaned up when change master is fixed
---vertical_results
---replace_result $MASTER_MYPORT MASTER_PORT
---replace_column 1 # 5 # 8 # 9 # 23 # 33 #
-show slave status;
+--source include/show_slave_status.inc
--replace_result $MASTER_MYPORT MASTER_PORT
-eval change master to master_host='127.0.0.1',master_user='root',
- master_password='',master_port=$MASTER_MYPORT;
---vertical_results
---replace_result $MASTER_MYPORT MASTER_PORT
---replace_column 1 # 5 # 8 # 9 # 23 # 33 #
-show slave status;
+eval change master to master_host='127.0.0.1',master_user='root',
+master_password='',master_port=$MASTER_MYPORT;
--source include/start_slave.inc
sync_with_master;
---vertical_results
---replace_result $MASTER_MYPORT MASTER_PORT
---replace_column 1 # 5 # 8 # 9 # 23 # 33 #
---replace_column 33 #
-show slave status;
+--source include/show_slave_status.inc
+
connection master;
---disable_warnings
-drop table if exists t1;
---enable_warnings
+
create table t1 (n int, PRIMARY KEY(n));
insert into t1 values (10),(45),(90);
--sync_slave_with_master
-connection slave;
+
SELECT * FROM t1 ORDER BY n;
connection master;
SELECT * FROM t1 ORDER BY n;
diff --git a/mysql-test/suite/engines/funcs/t/rpl_flushlog_loop.test b/mysql-test/suite/engines/funcs/t/rpl_flushlog_loop.test
index 93207dfddf7..b4742246264 100644
--- a/mysql-test/suite/engines/funcs/t/rpl_flushlog_loop.test
+++ b/mysql-test/suite/engines/funcs/t/rpl_flushlog_loop.test
@@ -32,9 +32,6 @@ sleep 5;
#
# Show status of slave
#
---replace_result $SLAVE_MYPORT SLAVE_PORT
---replace_column 1 # 8 # 9 # 16 # 23 # 33 #
---vertical_results
-SHOW SLAVE STATUS;
-stop slave;
+--let $status_items= Slave_IO_Running, Slave_SQL_Running, Last_SQL_Errno, Last_SQL_Error, Exec_Master_Log_Pos
+--source include/stop_slave.inc
--source include/rpl_end.inc
diff --git a/mysql-test/suite/engines/funcs/t/rpl_server_id1.test b/mysql-test/suite/engines/funcs/t/rpl_server_id1.test
index a1425531b2c..1412db46d3a 100644
--- a/mysql-test/suite/engines/funcs/t/rpl_server_id1.test
+++ b/mysql-test/suite/engines/funcs/t/rpl_server_id1.test
@@ -12,9 +12,8 @@ reset master;
--source include/stop_slave.inc
--replace_result $SLAVE_MYPORT SLAVE_PORT
eval change master to master_port=$SLAVE_MYPORT;
---replace_result $SLAVE_MYPORT SLAVE_PORT
---replace_column 16 # 18 #
-show slave status;
+--let $status_items= Slave_IO_Running, Slave_SQL_Running, Last_SQL_Errno, Last_SQL_Error, Exec_Master_Log_Pos
+--source include/show_slave_status.inc
start slave;
insert into t1 values (1);
diff --git a/mysys/my_seek.c b/mysys/my_seek.c
index 6a370b0ad43..db364ccddda 100644
--- a/mysys/my_seek.c
+++ b/mysys/my_seek.c
@@ -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);
diff --git a/sql/opt_sum.cc b/sql/opt_sum.cc
index af2d9ddc2e7..27360d4a10c 100644
--- a/sql/opt_sum.cc
+++ b/sql/opt_sum.cc
@@ -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);