[ { "name": "TestSetOperation", "cases": [ "select * from t3 union select * from t1", "select * from t2 union all select * from t1", "select * from t1 except select * from t3", "select * from t1 intersect select * from t2", "select * from t1 union all select * from t2 union all select * from t3", "select * from t1 union all select * from t2 except select * from t3", "select * from t1 intersect select * from t2 intersect select * from t1", "select * from t1 union all select * from t2 intersect select * from t3", "select * from t1 except select * from t2 intersect select * from t3", "select * from t1 intersect (select * from t2 except (select * from t3))", "select * from t1 union all (select * from t2 except select * from t3)", "select * from t1 union (select * from t2 union all select * from t3)", "(select * from t1 intersect select * from t1) except (select * from t2 union select * from t3)" ] }, { "name": "TestSetOperationOnDiffColType", "cases": [ "select * from t3 union select * from t1", "select * from t2 union all select * from t1", "select * from t1 except select * from t3", "select * from t1 intersect select * from t2", "select * from t1 union all select * from t2 union all select * from t3", "select * from t1 union all select * from t2 except select * from t3", "select * from t1 intersect select * from t2 intersect select * from t1", "select * from t1 union all select * from t2 intersect select * from t3", "select * from t1 except select * from t2 intersect select * from t3" ] }, { "name": "TestNaturalJoin", "cases": [ "select * from t1 natural join t2", "select * from t1 natural left join t2 order by a", "select * from t1 natural right join t2 order by a", "SELECT * FROM t1 NATURAL LEFT JOIN t2 WHERE not(t1.a <=> t2.a)" ] }, { "name": "TestUsingAndNaturalJoinSchema", "cases": [ "select t1.*, t2.*, t3.*, t4.* from (t1 natural join t2) natural join (t3 natural join t4);", "select t1.*, t2.*, t3.*, t4.* from (t1 natural join t2) join (t3 natural join t4) using (b);", "select t1.*, t2.*, t3.*, t4.* from (t1 natural join t2) join (t3 natural join t4) using (c);", "select t1.*, t2.*, t3.*, t4.* from (t1 natural join t2) join (t3 natural join t4) using (c,b);", "select t1.*, t2.*, t3.*, t4.* from (t1 natural join t2) left outer join (t3 natural join t4) using (b);", "select t1.*, t2.*, t3.*, t4.* from (t1 natural join t2) left outer join (t3 natural join t4) using (c);", "select t1.*, t2.*, t3.*, t4.* from (t1 natural join t2) left outer join (t3 natural join t4) using (c,b);", "select t1.*, t2.*, t3.*, t4.* from (t1 natural join t2) right outer join (t3 natural join t4) using (b);", "select t1.*, t2.*, t3.*, t4.* from (t1 natural join t2) right outer join (t3 natural join t4) using (c);", "select t1.*, t2.*, t3.*, t4.* from (t1 natural join t2) right outer join (t3 natural join t4) using (c,b);", "select * from (t1 natural join t2) natural join (t3 natural join t4);", "select * from (t1 natural join t2) join (t3 natural join t4) using (b);", "select * from (t1 natural join t2) left outer join (t3 natural join t4) using (b);", "select * from (t1 natural join t2) right outer join (t3 natural join t4) using (c,b);" ] }, { "name": "TestIndexScanWithYearCol", "cases": [ "select t1.c1, t2.c1 from t as t1 inner join t as t2 on t1.c1 = t2.c1 where t1.c1 != NULL", "select * from t as t1 inner join t as t2 on t1.c1 = t2.c1 where t1.c1 != NULL", "select count(*) from t as t1 inner join t as t2 on t1.c1 = t2.c1 where t1.c1 != NULL", "select t1.c1, t2.c1 from t as t1 left join t as t2 on t1.c1 = t2.c1 where t1.c1 != NULL", "select * from t as t1 left join t as t2 on t1.c1 = t2.c1 where t1.c1 != NULL", "select count(*) from t as t1 left join t as t2 on t1.c1 = t2.c1 where t1.c1 != NULL", "select * from t as t1 left join t as t2 on t1.c1 = t2.c1 where t1.c1 is not NULL" ] }, { "name": "TestRangePartitionBoundariesEq", "cases": [ "INSERT INTO t VALUES (999998, '999998 Filler ...'), (999999, '999999 Filler ...'), (1000000, '1000000 Filler ...'), (1000001, '1000001 Filler ...'), (1000002, '1000002 Filler ...')", "INSERT INTO t VALUES (1999998, '1999998 Filler ...'), (1999999, '1999999 Filler ...'), (2000000, '2000000 Filler ...'), (2000001, '2000001 Filler ...'), (2000002, '2000002 Filler ...')", "INSERT INTO t VALUES (2999998, '2999998 Filler ...'), (2999999, '2999999 Filler ...')", "INSERT INTO t VALUES (-2147483648, 'MIN_INT filler...'), (0, '0 Filler...')", "ANALYZE TABLE t", "SELECT * FROM t WHERE a = -2147483648", "SELECT * FROM t WHERE a IN (-2147483648)", "SELECT * FROM t WHERE a = 0", "SELECT * FROM t WHERE a IN (0)", "SELECT * FROM t WHERE a = 999998", "SELECT * FROM t WHERE a IN (999998)", "SELECT * FROM t WHERE a = 999999", "SELECT * FROM t WHERE a IN (999999)", "SELECT * FROM t WHERE a = 1000000", "SELECT * FROM t WHERE a IN (1000000)", "SELECT * FROM t WHERE a = 1000001", "SELECT * FROM t WHERE a IN (1000001)", "SELECT * FROM t WHERE a = 1000002", "SELECT * FROM t WHERE a IN (1000002)", "SELECT * FROM t WHERE a = 3000000", "SELECT * FROM t WHERE a IN (3000000)", "SELECT * FROM t WHERE a = 3000001", "SELECT * FROM t WHERE a IN (3000001)", "SELECT * FROM t WHERE a IN (-2147483648, -2147483647)", "SELECT * FROM t WHERE a IN (-2147483647, -2147483646)", "SELECT * FROM t WHERE a IN (999997, 999998, 999999)", "SELECT * FROM t WHERE a IN (999998, 999999, 1000000)", "SELECT * FROM t WHERE a IN (999999, 1000000, 1000001)", "SELECT * FROM t WHERE a IN (1000000, 1000001, 1000002)", "SELECT * FROM t WHERE a IN (1999997, 1999998, 1999999)", "SELECT * FROM t WHERE a IN (1999998, 1999999, 2000000)", "SELECT * FROM t WHERE a IN (1999999, 2000000, 2000001)", "SELECT * FROM t WHERE a IN (2000000, 2000001, 2000002)", "SELECT * FROM t WHERE a IN (2999997, 2999998, 2999999)", "SELECT * FROM t WHERE a IN (2999998, 2999999, 3000000)", "SELECT * FROM t WHERE a IN (2999999, 3000000, 3000001)", "SELECT * FROM t WHERE a IN (3000000, 3000001, 3000002)" ] }, { "name": "TestRangePartitionBoundariesNe", "cases": [ "INSERT INTO t VALUES (0, '0 Filler...')", "INSERT INTO t VALUES (1, '1 Filler...')", "INSERT INTO t VALUES (2, '2 Filler...')", "INSERT INTO t VALUES (3, '3 Filler...')", "INSERT INTO t VALUES (4, '4 Filler...')", "INSERT INTO t VALUES (5, '5 Filler...')", "INSERT INTO t VALUES (6, '6 Filler...')", "ANALYZE TABLE t", "SELECT * FROM t WHERE a != -1", "SELECT * FROM t WHERE 1 = 1 AND a != -1", "SELECT * FROM t WHERE a NOT IN (-2, -1)", "SELECT * FROM t WHERE 1 = 0 OR a = -1", "SELECT * FROM t WHERE a != 0", "SELECT * FROM t WHERE 1 = 1 AND a != -1 AND a != 0", "SELECT * FROM t WHERE a NOT IN (-2, -1, 0)", "SELECT * FROM t WHERE 1 = 0 OR a = -1 OR a = 0", "SELECT * FROM t WHERE a != 1", "SELECT * FROM t WHERE 1 = 1 AND a != -1 AND a != 0 AND a != 1", "SELECT * FROM t WHERE a NOT IN (-2, -1, 0, 1)", "SELECT * FROM t WHERE 1 = 0 OR a = -1 OR a = 0 OR a = 1", "SELECT * FROM t WHERE a != 2", "SELECT * FROM t WHERE 1 = 1 AND a != -1 AND a != 0 AND a != 1 AND a != 2", "SELECT * FROM t WHERE a NOT IN (-2, -1, 0, 1, 2)", "SELECT * FROM t WHERE 1 = 0 OR a = -1 OR a = 0 OR a = 1 OR a = 2", "SELECT * FROM t WHERE a != 3", "SELECT * FROM t WHERE 1 = 1 AND a != -1 AND a != 0 AND a != 1 AND a != 2 AND a != 3", "SELECT * FROM t WHERE a NOT IN (-2, -1, 0, 1, 2, 3)", "SELECT * FROM t WHERE 1 = 0 OR a = -1 OR a = 0 OR a = 1 OR a = 2 OR a = 3", "SELECT * FROM t WHERE a != 4", "SELECT * FROM t WHERE 1 = 1 AND a != -1 AND a != 0 AND a != 1 AND a != 2 AND a != 3 AND a != 4", "SELECT * FROM t WHERE a NOT IN (-2, -1, 0, 1, 2, 3, 4)", "SELECT * FROM t WHERE 1 = 0 OR a = -1 OR a = 0 OR a = 1 OR a = 2 OR a = 3 OR a = 4", "SELECT * FROM t WHERE a != 5", "SELECT * FROM t WHERE 1 = 1 AND a != -1 AND a != 0 AND a != 1 AND a != 2 AND a != 3 AND a != 4 AND a != 5", "SELECT * FROM t WHERE a NOT IN (-2, -1, 0, 1, 2, 3, 4, 5)", "SELECT * FROM t WHERE 1 = 0 OR a = -1 OR a = 0 OR a = 1 OR a = 2 OR a = 3 OR a = 4 OR a = 5", "SELECT * FROM t WHERE a != 6", "SELECT * FROM t WHERE 1 = 1 AND a != -1 AND a != 0 AND a != 1 AND a != 2 AND a != 3 AND a != 4 AND a != 5 AND a != 6", "SELECT * FROM t WHERE a NOT IN (-2, -1, 0, 1, 2, 3, 4, 5, 6)", "SELECT * FROM t WHERE 1 = 0 OR a = -1 OR a = 0 OR a = 1 OR a = 2 OR a = 3 OR a = 4 OR a = 5 OR a = 6", "SELECT * FROM t WHERE a != 7", "SELECT * FROM t WHERE 1 = 1 AND a != -1 AND a != 0 AND a != 1 AND a != 2 AND a != 3 AND a != 4 AND a != 5 AND a != 6 AND a != 7", "SELECT * FROM t WHERE a NOT IN (-2, -1, 0, 1, 2, 3, 4, 5, 6, 7)", "SELECT * FROM t WHERE 1 = 0 OR a = -1 OR a = 0 OR a = 1 OR a = 2 OR a = 3 OR a = 4 OR a = 5 OR a = 6 OR a = 7" ] }, { "name": "TestRangePartitionBoundariesBetweenM", "cases": [ "INSERT INTO t VALUES (999998, '999998 Filler ...'), (999999, '999999 Filler ...'), (1000000, '1000000 Filler ...'), (1000001, '1000001 Filler ...'), (1000002, '1000002 Filler ...')", "INSERT INTO t VALUES (1999998, '1999998 Filler ...'), (1999999, '1999999 Filler ...'), (2000000, '2000000 Filler ...'), (2000001, '2000001 Filler ...'), (2000002, '2000002 Filler ...')", "INSERT INTO t VALUES (2999998, '2999998 Filler ...'), (2999999, '2999999 Filler ...')", "INSERT INTO t VALUES (-2147483648, 'MIN_INT filler...'), (0, '0 Filler...')", "ANALYZE TABLE t", "SELECT * FROM t WHERE a BETWEEN -2147483648 AND -2147483649", "SELECT * FROM t WHERE a BETWEEN -2147483648 AND -2147483648", "SELECT * FROM t WHERE a BETWEEN -2147483648 AND -2147483647", "SELECT * FROM t WHERE a BETWEEN -2147483648 AND -2147483646", "SELECT * FROM t WHERE a BETWEEN -2147483648 AND -2147483638", "SELECT * FROM t WHERE a BETWEEN -2147483648 AND -2146483650", "SELECT * FROM t WHERE a BETWEEN -2147483648 AND -2146483649", "SELECT * FROM t WHERE a BETWEEN -2147483648 AND -2146483648", "SELECT * FROM t WHERE a BETWEEN -2147483648 AND -2146483647", "SELECT * FROM t WHERE a BETWEEN -2147483648 AND -2146483646", "SELECT * FROM t WHERE a BETWEEN 0 AND -1", "SELECT * FROM t WHERE a BETWEEN 0 AND 0", "SELECT * FROM t WHERE a BETWEEN 0 AND 1", "SELECT * FROM t WHERE a BETWEEN 0 AND 2", "SELECT * FROM t WHERE a BETWEEN 0 AND 10", "SELECT * FROM t WHERE a BETWEEN 0 AND 999998", "SELECT * FROM t WHERE a BETWEEN 0 AND 999999", "SELECT * FROM t WHERE a BETWEEN 0 AND 1000000", "SELECT * FROM t WHERE a BETWEEN 0 AND 1000001", "SELECT * FROM t WHERE a BETWEEN 0 AND 1000002", "SELECT * FROM t WHERE a BETWEEN 999998 AND 999997", "SELECT * FROM t WHERE a BETWEEN 999998 AND 999998", "SELECT * FROM t WHERE a BETWEEN 999998 AND 999999", "SELECT * FROM t WHERE a BETWEEN 999998 AND 1000000", "SELECT * FROM t WHERE a BETWEEN 999998 AND 1000008", "SELECT * FROM t WHERE a BETWEEN 999998 AND 1999996", "SELECT * FROM t WHERE a BETWEEN 999998 AND 1999997", "SELECT * FROM t WHERE a BETWEEN 999998 AND 1999998", "SELECT * FROM t WHERE a BETWEEN 999998 AND 1999999", "SELECT * FROM t WHERE a BETWEEN 999998 AND 2000000", "SELECT * FROM t WHERE a BETWEEN 999999 AND 999998", "SELECT * FROM t WHERE a BETWEEN 999999 AND 999999", "SELECT * FROM t WHERE a BETWEEN 999999 AND 1000000", "SELECT * FROM t WHERE a BETWEEN 999999 AND 1000001", "SELECT * FROM t WHERE a BETWEEN 999999 AND 1000009", "SELECT * FROM t WHERE a BETWEEN 999999 AND 1999997", "SELECT * FROM t WHERE a BETWEEN 999999 AND 1999998", "SELECT * FROM t WHERE a BETWEEN 999999 AND 1999999", "SELECT * FROM t WHERE a BETWEEN 999999 AND 2000000", "SELECT * FROM t WHERE a BETWEEN 999999 AND 2000001", "SELECT * FROM t WHERE a BETWEEN 1000000 AND 999999", "SELECT * FROM t WHERE a BETWEEN 1000000 AND 1000000", "SELECT * FROM t WHERE a BETWEEN 1000000 AND 1000001", "SELECT * FROM t WHERE a BETWEEN 1000000 AND 1000002", "SELECT * FROM t WHERE a BETWEEN 1000000 AND 1000010", "SELECT * FROM t WHERE a BETWEEN 1000000 AND 1999998", "SELECT * FROM t WHERE a BETWEEN 1000000 AND 1999999", "SELECT * FROM t WHERE a BETWEEN 1000000 AND 2000000", "SELECT * FROM t WHERE a BETWEEN 1000000 AND 2000001", "SELECT * FROM t WHERE a BETWEEN 1000000 AND 2000002", "SELECT * FROM t WHERE a BETWEEN 1000001 AND 1000000", "SELECT * FROM t WHERE a BETWEEN 1000001 AND 1000001", "SELECT * FROM t WHERE a BETWEEN 1000001 AND 1000002", "SELECT * FROM t WHERE a BETWEEN 1000001 AND 1000003", "SELECT * FROM t WHERE a BETWEEN 1000001 AND 1000011", "SELECT * FROM t WHERE a BETWEEN 1000001 AND 1999999", "SELECT * FROM t WHERE a BETWEEN 1000001 AND 2000000", "SELECT * FROM t WHERE a BETWEEN 1000001 AND 2000001", "SELECT * FROM t WHERE a BETWEEN 1000001 AND 2000002", "SELECT * FROM t WHERE a BETWEEN 1000001 AND 2000003", "SELECT * FROM t WHERE a BETWEEN 1000002 AND 1000001", "SELECT * FROM t WHERE a BETWEEN 1000002 AND 1000002", "SELECT * FROM t WHERE a BETWEEN 1000002 AND 1000003", "SELECT * FROM t WHERE a BETWEEN 1000002 AND 1000004", "SELECT * FROM t WHERE a BETWEEN 1000002 AND 1000012", "SELECT * FROM t WHERE a BETWEEN 1000002 AND 2000000", "SELECT * FROM t WHERE a BETWEEN 1000002 AND 2000001", "SELECT * FROM t WHERE a BETWEEN 1000002 AND 2000002", "SELECT * FROM t WHERE a BETWEEN 1000002 AND 2000003", "SELECT * FROM t WHERE a BETWEEN 1000002 AND 2000004", "SELECT * FROM t WHERE a BETWEEN 3000000 AND 2999999", "SELECT * FROM t WHERE a BETWEEN 3000000 AND 3000000", "SELECT * FROM t WHERE a BETWEEN 3000000 AND 3000001", "SELECT * FROM t WHERE a BETWEEN 3000000 AND 3000002", "SELECT * FROM t WHERE a BETWEEN 3000000 AND 3000010", "SELECT * FROM t WHERE a BETWEEN 3000000 AND 3999998", "SELECT * FROM t WHERE a BETWEEN 3000000 AND 3999999", "SELECT * FROM t WHERE a BETWEEN 3000000 AND 4000000", "SELECT * FROM t WHERE a BETWEEN 3000000 AND 4000001", "SELECT * FROM t WHERE a BETWEEN 3000000 AND 4000002", "SELECT * FROM t WHERE a BETWEEN 3000001 AND 3000000", "SELECT * FROM t WHERE a BETWEEN 3000001 AND 3000001", "SELECT * FROM t WHERE a BETWEEN 3000001 AND 3000002", "SELECT * FROM t WHERE a BETWEEN 3000001 AND 3000003", "SELECT * FROM t WHERE a BETWEEN 3000001 AND 3000011", "SELECT * FROM t WHERE a BETWEEN 3000001 AND 3999999", "SELECT * FROM t WHERE a BETWEEN 3000001 AND 4000000", "SELECT * FROM t WHERE a BETWEEN 3000001 AND 4000001", "SELECT * FROM t WHERE a BETWEEN 3000001 AND 4000002", "SELECT * FROM t WHERE a BETWEEN 3000001 AND 4000003" ] }, { "name": "TestRangePartitionBoundariesBetweenS", "cases": [ "INSERT INTO t VALUES (0, '0 Filler...')", "INSERT INTO t VALUES (1, '1 Filler...')", "INSERT INTO t VALUES (2, '2 Filler...')", "INSERT INTO t VALUES (3, '3 Filler...')", "INSERT INTO t VALUES (4, '4 Filler...')", "INSERT INTO t VALUES (5, '5 Filler...')", "INSERT INTO t VALUES (6, '6 Filler...')", "ANALYZE TABLE t", "SELECT * FROM t WHERE a BETWEEN 2 AND -1", "SELECT * FROM t WHERE a BETWEEN -1 AND 4", "SELECT * FROM t WHERE a BETWEEN 2 AND 0", "SELECT * FROM t WHERE a BETWEEN 0 AND 4", "SELECT * FROM t WHERE a BETWEEN 2 AND 1", "SELECT * FROM t WHERE a BETWEEN 1 AND 4", "SELECT * FROM t WHERE a BETWEEN 2 AND 2", "SELECT * FROM t WHERE a BETWEEN 2 AND 4", "SELECT * FROM t WHERE a BETWEEN 2 AND 3", "SELECT * FROM t WHERE a BETWEEN 3 AND 4", "SELECT * FROM t WHERE a BETWEEN 2 AND 4", "SELECT * FROM t WHERE a BETWEEN 4 AND 4", "SELECT * FROM t WHERE a BETWEEN 2 AND 5", "SELECT * FROM t WHERE a BETWEEN 5 AND 4", "SELECT * FROM t WHERE a BETWEEN 2 AND 6", "SELECT * FROM t WHERE a BETWEEN 6 AND 4", "SELECT * FROM t WHERE a BETWEEN 2 AND 7", "SELECT * FROM t WHERE a BETWEEN 7 AND 4" ] }, { "name": "TestRangePartitionBoundariesLtM", "cases": [ "INSERT INTO t VALUES (999998, '999998 Filler ...'), (999999, '999999 Filler ...'), (1000000, '1000000 Filler ...'), (1000001, '1000001 Filler ...'), (1000002, '1000002 Filler ...')", "INSERT INTO t VALUES (1999998, '1999998 Filler ...'), (1999999, '1999999 Filler ...'), (2000000, '2000000 Filler ...'), (2000001, '2000001 Filler ...'), (2000002, '2000002 Filler ...')", "INSERT INTO t VALUES (2999998, '2999998 Filler ...'), (2999999, '2999999 Filler ...')", "INSERT INTO t VALUES (-2147483648, 'MIN_INT filler...'), (0, '0 Filler...')", "ANALYZE TABLE t", "SELECT * FROM t WHERE a < -2147483648", "SELECT * FROM t WHERE a > -2147483648", "SELECT * FROM t WHERE a <= -2147483648", "SELECT * FROM t WHERE a >= -2147483648", "SELECT * FROM t WHERE a < 0", "SELECT * FROM t WHERE a > 0", "SELECT * FROM t WHERE a <= 0", "SELECT * FROM t WHERE a >= 0", "SELECT * FROM t WHERE a < 999998", "SELECT * FROM t WHERE a > 999998", "SELECT * FROM t WHERE a <= 999998", "SELECT * FROM t WHERE a >= 999998", "SELECT * FROM t WHERE a < 999999", "SELECT * FROM t WHERE a > 999999", "SELECT * FROM t WHERE a <= 999999", "SELECT * FROM t WHERE a >= 999999", "SELECT * FROM t WHERE a < 1000000", "SELECT * FROM t WHERE a > 1000000", "SELECT * FROM t WHERE a <= 1000000", "SELECT * FROM t WHERE a >= 1000000", "SELECT * FROM t WHERE a < 1000001", "SELECT * FROM t WHERE a > 1000001", "SELECT * FROM t WHERE a <= 1000001", "SELECT * FROM t WHERE a >= 1000001", "SELECT * FROM t WHERE a < 1000002", "SELECT * FROM t WHERE a > 1000002", "SELECT * FROM t WHERE a <= 1000002", "SELECT * FROM t WHERE a >= 1000002", "SELECT * FROM t WHERE a < 3000000", "SELECT * FROM t WHERE a > 3000000", "SELECT * FROM t WHERE a <= 3000000", "SELECT * FROM t WHERE a >= 3000000", "SELECT * FROM t WHERE a < 3000001", "SELECT * FROM t WHERE a > 3000001", "SELECT * FROM t WHERE a <= 3000001", "SELECT * FROM t WHERE a >= 3000001", "SELECT * FROM t WHERE a < 999997", "SELECT * FROM t WHERE a > 999997", "SELECT * FROM t WHERE a <= 999997", "SELECT * FROM t WHERE a >= 999997", "SELECT * FROM t WHERE a >= 999997 AND a <= 999999", "SELECT * FROM t WHERE a > 999997 AND a <= 999999", "SELECT * FROM t WHERE a > 999997 AND a < 999999", "SELECT * FROM t WHERE a > 999997 AND a <= 999999", "SELECT * FROM t WHERE a < 999998", "SELECT * FROM t WHERE a > 999998", "SELECT * FROM t WHERE a <= 999998", "SELECT * FROM t WHERE a >= 999998", "SELECT * FROM t WHERE a >= 999998 AND a <= 1000000", "SELECT * FROM t WHERE a > 999998 AND a <= 1000000", "SELECT * FROM t WHERE a > 999998 AND a < 1000000", "SELECT * FROM t WHERE a > 999998 AND a <= 1000000", "SELECT * FROM t WHERE a < 999999", "SELECT * FROM t WHERE a > 999999", "SELECT * FROM t WHERE a <= 999999", "SELECT * FROM t WHERE a >= 999999", "SELECT * FROM t WHERE a >= 999999 AND a <= 1000001", "SELECT * FROM t WHERE a > 999999 AND a <= 1000001", "SELECT * FROM t WHERE a > 999999 AND a < 1000001", "SELECT * FROM t WHERE a > 999999 AND a <= 1000001", "SELECT * FROM t WHERE a < 1000000", "SELECT * FROM t WHERE a > 1000000", "SELECT * FROM t WHERE a <= 1000000", "SELECT * FROM t WHERE a >= 1000000", "SELECT * FROM t WHERE a >= 1000000 AND a <= 1000002", "SELECT * FROM t WHERE a > 1000000 AND a <= 1000002", "SELECT * FROM t WHERE a > 1000000 AND a < 1000002", "SELECT * FROM t WHERE a > 1000000 AND a <= 1000002", "SELECT * FROM t WHERE a < 1999997", "SELECT * FROM t WHERE a > 1999997", "SELECT * FROM t WHERE a <= 1999997", "SELECT * FROM t WHERE a >= 1999997", "SELECT * FROM t WHERE a >= 1999997 AND a <= 1999999", "SELECT * FROM t WHERE a > 1999997 AND a <= 1999999", "SELECT * FROM t WHERE a > 1999997 AND a < 1999999", "SELECT * FROM t WHERE a > 1999997 AND a <= 1999999", "SELECT * FROM t WHERE a < 1999998", "SELECT * FROM t WHERE a > 1999998", "SELECT * FROM t WHERE a <= 1999998", "SELECT * FROM t WHERE a >= 1999998", "SELECT * FROM t WHERE a >= 1999998 AND a <= 2000000", "SELECT * FROM t WHERE a > 1999998 AND a <= 2000000", "SELECT * FROM t WHERE a > 1999998 AND a < 2000000", "SELECT * FROM t WHERE a > 1999998 AND a <= 2000000", "SELECT * FROM t WHERE a < 1999999", "SELECT * FROM t WHERE a > 1999999", "SELECT * FROM t WHERE a <= 1999999", "SELECT * FROM t WHERE a >= 1999999", "SELECT * FROM t WHERE a >= 1999999 AND a <= 2000001", "SELECT * FROM t WHERE a > 1999999 AND a <= 2000001", "SELECT * FROM t WHERE a > 1999999 AND a < 2000001", "SELECT * FROM t WHERE a > 1999999 AND a <= 2000001", "SELECT * FROM t WHERE a < 2000000", "SELECT * FROM t WHERE a > 2000000", "SELECT * FROM t WHERE a <= 2000000", "SELECT * FROM t WHERE a >= 2000000", "SELECT * FROM t WHERE a >= 2000000 AND a <= 2000002", "SELECT * FROM t WHERE a > 2000000 AND a <= 2000002", "SELECT * FROM t WHERE a > 2000000 AND a < 2000002", "SELECT * FROM t WHERE a > 2000000 AND a <= 2000002", "SELECT * FROM t WHERE a < 2999997", "SELECT * FROM t WHERE a > 2999997", "SELECT * FROM t WHERE a <= 2999997", "SELECT * FROM t WHERE a >= 2999997", "SELECT * FROM t WHERE a >= 2999997 AND a <= 2999999", "SELECT * FROM t WHERE a > 2999997 AND a <= 2999999", "SELECT * FROM t WHERE a > 2999997 AND a < 2999999", "SELECT * FROM t WHERE a > 2999997 AND a <= 2999999", "SELECT * FROM t WHERE a < 2999998", "SELECT * FROM t WHERE a > 2999998", "SELECT * FROM t WHERE a <= 2999998", "SELECT * FROM t WHERE a >= 2999998", "SELECT * FROM t WHERE a >= 2999998 AND a <= 3000000", "SELECT * FROM t WHERE a > 2999998 AND a <= 3000000", "SELECT * FROM t WHERE a > 2999998 AND a < 3000000", "SELECT * FROM t WHERE a > 2999998 AND a <= 3000000", "SELECT * FROM t WHERE a < 2999999", "SELECT * FROM t WHERE a > 2999999", "SELECT * FROM t WHERE a <= 2999999", "SELECT * FROM t WHERE a >= 2999999", "SELECT * FROM t WHERE a >= 2999999 AND a <= 3000001", "SELECT * FROM t WHERE a > 2999999 AND a <= 3000001", "SELECT * FROM t WHERE a > 2999999 AND a < 3000001", "SELECT * FROM t WHERE a > 2999999 AND a <= 3000001", "SELECT * FROM t WHERE a < 3000000", "SELECT * FROM t WHERE a > 3000000", "SELECT * FROM t WHERE a <= 3000000", "SELECT * FROM t WHERE a >= 3000000", "SELECT * FROM t WHERE a >= 3000000 AND a <= 3000002", "SELECT * FROM t WHERE a > 3000000 AND a <= 3000002", "SELECT * FROM t WHERE a > 3000000 AND a < 3000002", "SELECT * FROM t WHERE a > 3000000 AND a <= 3000002" ] }, { "name": "TestRangePartitionBoundariesLtS", "cases": [ "INSERT INTO t VALUES (0, '0 Filler...')", "INSERT INTO t VALUES (1, '1 Filler...')", "INSERT INTO t VALUES (2, '2 Filler...')", "INSERT INTO t VALUES (3, '3 Filler...')", "INSERT INTO t VALUES (4, '4 Filler...')", "INSERT INTO t VALUES (5, '5 Filler...')", "INSERT INTO t VALUES (6, '6 Filler...')", "ANALYZE TABLE t", "SELECT * FROM t WHERE a < -1", "SELECT * FROM t WHERE a > -1", "SELECT * FROM t WHERE a <= -1", "SELECT * FROM t WHERE a >= -1", "SELECT * FROM t WHERE a < 2 OR a > -1", "SELECT * FROM t WHERE a > 2 AND a < -1", "SELECT * FROM t WHERE NOT (a < 2 OR a > -1)", "SELECT * FROM t WHERE NOT (a > 2 AND a < -1)", "SELECT * FROM t WHERE a < 2 OR a >= -1", "SELECT * FROM t WHERE a >= 2 AND a < -1", "SELECT * FROM t WHERE NOT (a < 2 OR a >= -1)", "SELECT * FROM t WHERE NOT (a >= 2 AND a < -1)", "SELECT * FROM t WHERE a <= 2 OR a > -1", "SELECT * FROM t WHERE a > 2 AND a <= -1", "SELECT * FROM t WHERE NOT (a <= 2 OR a > -1)", "SELECT * FROM t WHERE NOT (a > 2 AND a <= -1)", "SELECT * FROM t WHERE a <= 2 OR a >= -1", "SELECT * FROM t WHERE a >= 2 AND a <= -1", "SELECT * FROM t WHERE NOT (a <= 2 OR a >= -1)", "SELECT * FROM t WHERE NOT (a >= 2 AND a <= -1)", "SELECT * FROM t WHERE a < 0", "SELECT * FROM t WHERE a > 0", "SELECT * FROM t WHERE a <= 0", "SELECT * FROM t WHERE a >= 0", "SELECT * FROM t WHERE a < 2 OR a > 0", "SELECT * FROM t WHERE a > 2 AND a < 0", "SELECT * FROM t WHERE NOT (a < 2 OR a > 0)", "SELECT * FROM t WHERE NOT (a > 2 AND a < 0)", "SELECT * FROM t WHERE a < 2 OR a >= 0", "SELECT * FROM t WHERE a >= 2 AND a < 0", "SELECT * FROM t WHERE NOT (a < 2 OR a >= 0)", "SELECT * FROM t WHERE NOT (a >= 2 AND a < 0)", "SELECT * FROM t WHERE a <= 2 OR a > 0", "SELECT * FROM t WHERE a > 2 AND a <= 0", "SELECT * FROM t WHERE NOT (a <= 2 OR a > 0)", "SELECT * FROM t WHERE NOT (a > 2 AND a <= 0)", "SELECT * FROM t WHERE a <= 2 OR a >= 0", "SELECT * FROM t WHERE a >= 2 AND a <= 0", "SELECT * FROM t WHERE NOT (a <= 2 OR a >= 0)", "SELECT * FROM t WHERE NOT (a >= 2 AND a <= 0)", "SELECT * FROM t WHERE a < 1", "SELECT * FROM t WHERE a > 1", "SELECT * FROM t WHERE a <= 1", "SELECT * FROM t WHERE a >= 1", "SELECT * FROM t WHERE a < 2 OR a > 1", "SELECT * FROM t WHERE a > 2 AND a < 1", "SELECT * FROM t WHERE NOT (a < 2 OR a > 1)", "SELECT * FROM t WHERE NOT (a > 2 AND a < 1)", "SELECT * FROM t WHERE a < 2 OR a >= 1", "SELECT * FROM t WHERE a >= 2 AND a < 1", "SELECT * FROM t WHERE NOT (a < 2 OR a >= 1)", "SELECT * FROM t WHERE NOT (a >= 2 AND a < 1)", "SELECT * FROM t WHERE a <= 2 OR a > 1", "SELECT * FROM t WHERE a > 2 AND a <= 1", "SELECT * FROM t WHERE NOT (a <= 2 OR a > 1)", "SELECT * FROM t WHERE NOT (a > 2 AND a <= 1)", "SELECT * FROM t WHERE a <= 2 OR a >= 1", "SELECT * FROM t WHERE a >= 2 AND a <= 1", "SELECT * FROM t WHERE NOT (a <= 2 OR a >= 1)", "SELECT * FROM t WHERE NOT (a >= 2 AND a <= 1)", "SELECT * FROM t WHERE a < 2", "SELECT * FROM t WHERE a > 2", "SELECT * FROM t WHERE a <= 2", "SELECT * FROM t WHERE a >= 2", "SELECT * FROM t WHERE a < 2 OR a > 2", "SELECT * FROM t WHERE a > 2 AND a < 2", "SELECT * FROM t WHERE NOT (a < 2 OR a > 2)", "SELECT * FROM t WHERE NOT (a > 2 AND a < 2)", "SELECT * FROM t WHERE a < 2 OR a >= 2", "SELECT * FROM t WHERE a >= 2 AND a < 2", "SELECT * FROM t WHERE NOT (a < 2 OR a >= 2)", "SELECT * FROM t WHERE NOT (a >= 2 AND a < 2)", "SELECT * FROM t WHERE a <= 2 OR a > 2", "SELECT * FROM t WHERE a > 2 AND a <= 2", "SELECT * FROM t WHERE NOT (a <= 2 OR a > 2)", "SELECT * FROM t WHERE NOT (a > 2 AND a <= 2)", "SELECT * FROM t WHERE a <= 2 OR a >= 2", "SELECT * FROM t WHERE a >= 2 AND a <= 2", "SELECT * FROM t WHERE NOT (a <= 2 OR a >= 2)", "SELECT * FROM t WHERE NOT (a >= 2 AND a <= 2)", "SELECT * FROM t WHERE a < 3", "SELECT * FROM t WHERE a > 3", "SELECT * FROM t WHERE a <= 3", "SELECT * FROM t WHERE a >= 3", "SELECT * FROM t WHERE a < 2 OR a > 3", "SELECT * FROM t WHERE a > 2 AND a < 3", "SELECT * FROM t WHERE NOT (a < 2 OR a > 3)", "SELECT * FROM t WHERE NOT (a > 2 AND a < 3)", "SELECT * FROM t WHERE a < 2 OR a >= 3", "SELECT * FROM t WHERE a >= 2 AND a < 3", "SELECT * FROM t WHERE NOT (a < 2 OR a >= 3)", "SELECT * FROM t WHERE NOT (a >= 2 AND a < 3)", "SELECT * FROM t WHERE a <= 2 OR a > 3", "SELECT * FROM t WHERE a > 2 AND a <= 3", "SELECT * FROM t WHERE NOT (a <= 2 OR a > 3)", "SELECT * FROM t WHERE NOT (a > 2 AND a <= 3)", "SELECT * FROM t WHERE a <= 2 OR a >= 3", "SELECT * FROM t WHERE a >= 2 AND a <= 3", "SELECT * FROM t WHERE NOT (a <= 2 OR a >= 3)", "SELECT * FROM t WHERE NOT (a >= 2 AND a <= 3)", "SELECT * FROM t WHERE a < 4", "SELECT * FROM t WHERE a > 4", "SELECT * FROM t WHERE a <= 4", "SELECT * FROM t WHERE a >= 4", "SELECT * FROM t WHERE a < 2 OR a > 4", "SELECT * FROM t WHERE a > 2 AND a < 4", "SELECT * FROM t WHERE NOT (a < 2 OR a > 4)", "SELECT * FROM t WHERE NOT (a > 2 AND a < 4)", "SELECT * FROM t WHERE a < 2 OR a >= 4", "SELECT * FROM t WHERE a >= 2 AND a < 4", "SELECT * FROM t WHERE NOT (a < 2 OR a >= 4)", "SELECT * FROM t WHERE NOT (a >= 2 AND a < 4)", "SELECT * FROM t WHERE a <= 2 OR a > 4", "SELECT * FROM t WHERE a > 2 AND a <= 4", "SELECT * FROM t WHERE NOT (a <= 2 OR a > 4)", "SELECT * FROM t WHERE NOT (a > 2 AND a <= 4)", "SELECT * FROM t WHERE a <= 2 OR a >= 4", "SELECT * FROM t WHERE a >= 2 AND a <= 4", "SELECT * FROM t WHERE NOT (a <= 2 OR a >= 4)", "SELECT * FROM t WHERE NOT (a >= 2 AND a <= 4)", "SELECT * FROM t WHERE a < 5", "SELECT * FROM t WHERE a > 5", "SELECT * FROM t WHERE a <= 5", "SELECT * FROM t WHERE a >= 5", "SELECT * FROM t WHERE a < 2 OR a > 5", "SELECT * FROM t WHERE a > 2 AND a < 5", "SELECT * FROM t WHERE NOT (a < 2 OR a > 5)", "SELECT * FROM t WHERE NOT (a > 2 AND a < 5)", "SELECT * FROM t WHERE a < 2 OR a >= 5", "SELECT * FROM t WHERE a >= 2 AND a < 5", "SELECT * FROM t WHERE NOT (a < 2 OR a >= 5)", "SELECT * FROM t WHERE NOT (a >= 2 AND a < 5)", "SELECT * FROM t WHERE a <= 2 OR a > 5", "SELECT * FROM t WHERE a > 2 AND a <= 5", "SELECT * FROM t WHERE NOT (a <= 2 OR a > 5)", "SELECT * FROM t WHERE NOT (a > 2 AND a <= 5)", "SELECT * FROM t WHERE a <= 2 OR a >= 5", "SELECT * FROM t WHERE a >= 2 AND a <= 5", "SELECT * FROM t WHERE NOT (a <= 2 OR a >= 5)", "SELECT * FROM t WHERE NOT (a >= 2 AND a <= 5)", "SELECT * FROM t WHERE a < 6", "SELECT * FROM t WHERE a > 6", "SELECT * FROM t WHERE a <= 6", "SELECT * FROM t WHERE a >= 6", "SELECT * FROM t WHERE a < 2 OR a > 6", "SELECT * FROM t WHERE a > 2 AND a < 6", "SELECT * FROM t WHERE NOT (a < 2 OR a > 6)", "SELECT * FROM t WHERE NOT (a > 2 AND a < 6)", "SELECT * FROM t WHERE a < 2 OR a >= 6", "SELECT * FROM t WHERE a >= 2 AND a < 6", "SELECT * FROM t WHERE NOT (a < 2 OR a >= 6)", "SELECT * FROM t WHERE NOT (a >= 2 AND a < 6)", "SELECT * FROM t WHERE a <= 2 OR a > 6", "SELECT * FROM t WHERE a > 2 AND a <= 6", "SELECT * FROM t WHERE NOT (a <= 2 OR a > 6)", "SELECT * FROM t WHERE NOT (a > 2 AND a <= 6)", "SELECT * FROM t WHERE a <= 2 OR a >= 6", "SELECT * FROM t WHERE a >= 2 AND a <= 6", "SELECT * FROM t WHERE NOT (a <= 2 OR a >= 6)", "SELECT * FROM t WHERE NOT (a >= 2 AND a <= 6)", "SELECT * FROM t WHERE a < 7", "SELECT * FROM t WHERE a > 7", "SELECT * FROM t WHERE a <= 7", "SELECT * FROM t WHERE a >= 7", "SELECT * FROM t WHERE a < 2 OR a > 7", "SELECT * FROM t WHERE a > 2 AND a < 7", "SELECT * FROM t WHERE NOT (a < 2 OR a > 7)", "SELECT * FROM t WHERE NOT (a > 2 AND a < 7)", "SELECT * FROM t WHERE a < 2 OR a >= 7", "SELECT * FROM t WHERE a >= 2 AND a < 7", "SELECT * FROM t WHERE NOT (a < 2 OR a >= 7)", "SELECT * FROM t WHERE NOT (a >= 2 AND a < 7)", "SELECT * FROM t WHERE a <= 2 OR a > 7", "SELECT * FROM t WHERE a > 2 AND a <= 7", "SELECT * FROM t WHERE NOT (a <= 2 OR a > 7)", "SELECT * FROM t WHERE NOT (a > 2 AND a <= 7)", "SELECT * FROM t WHERE a <= 2 OR a >= 7", "SELECT * FROM t WHERE a >= 2 AND a <= 7", "SELECT * FROM t WHERE NOT (a <= 2 OR a >= 7)", "SELECT * FROM t WHERE NOT (a >= 2 AND a <= 7)" ] } ]