--source include/have_partition.inc SET SESSION storage_engine='MyISAM'; --disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings CREATE TABLE t1 ( f_int1 INTEGER, f_int2 INTEGER) PARTITION BY LIST(MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3), PARTITION part_2 VALUES IN (-2), PARTITION part_1 VALUES IN (-1), PARTITION part0 VALUES IN (0), PARTITION part1 VALUES IN (1), PARTITION part2 VALUES IN (2), PARTITION part3 VALUES IN (3)); INSERT INTO t1 SET f_int1 = 9, f_int2 = 9; INSERT INTO t1 SET f_int1 = 8, f_int2 = 8; INSERT INTO t1 SET f_int1 = 7, f_int2 = 7; INSERT INTO t1 SET f_int1 = 6, f_int2 = 6; INSERT INTO t1 SET f_int1 = 5, f_int2 = 5; INSERT INTO t1 SET f_int1 = 4, f_int2 = 4; INSERT INTO t1 SET f_int1 = 3, f_int2 = 3; INSERT INTO t1 SET f_int1 = 2, f_int2 = 2; INSERT INTO t1 SET f_int1 = 1, f_int2 = 1; --echo # This result set is correct. SELECT * FROM t1 WHERE f_int1 BETWEEN 5 AND 15 ORDER by f_int1; ALTER TABLE t1 MODIFY f_int1 MEDIUMINT; --echo # SELECT with qualification for column used in part. function --echo # --> wrong number of rows SELECT * FROM t1 WHERE f_int1 BETWEEN 5 AND 15 ORDER by f_int1; --echo # SELECT with qualification for column not used in part. function --echo # --> correct result set SELECT * FROM t1 WHERE f_int2 BETWEEN 5 AND 15 ORDER by f_int1;