mirror of
https://github.com/MariaDB/server.git
synced 2025-11-13 21:42:58 +03:00
BUG# 17430 Partitoins: crash on SELECT * FROM t1 WHERE f_int1 IS NULL
BUG# 17432: Partitions: wrong result, SELECT ... WHERE <column> is null mysql-test/r/partition.result: result block for tests mysql-test/t/partition.test: test cases for bug #17432 and 17430 sql/sql_partition.cc: improve null handling by returning LONGLONG_MIN for values that are NULL
This commit is contained in:
@@ -315,4 +315,37 @@ drop table t1;
|
||||
create table t1 (s1 int, unique (s1)) partition by list (s1) (partition x1 VALUES in (10), partition x2 values in (20));
|
||||
alter table t1 add partition (partition x3 values in (30));
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (
|
||||
f_int1 INTEGER, f_int2 INTEGER,
|
||||
f_char1 CHAR(10), f_char2 CHAR(10), f_charbig VARCHAR(1000)
|
||||
)
|
||||
PARTITION BY RANGE(f_int1 DIV 2)
|
||||
SUBPARTITION BY HASH(f_int1)
|
||||
SUBPARTITIONS 2
|
||||
(PARTITION parta VALUES LESS THAN (0),
|
||||
PARTITION partb VALUES LESS THAN (5),
|
||||
PARTITION parte VALUES LESS THAN (10),
|
||||
PARTITION partf VALUES LESS THAN (2147483647));
|
||||
INSERT INTO t1 SET f_int1 = NULL , f_int2 = -20, f_char1 = CAST(-20 AS CHAR),
|
||||
f_char2 = CAST(-20 AS CHAR), f_charbig = '#NULL#';
|
||||
SELECT * FROM t1 WHERE f_int1 IS NULL;
|
||||
f_int1 f_int2 f_char1 f_char2 f_charbig
|
||||
NULL -20 -20 -20 #NULL#
|
||||
SELECT * FROM t1;
|
||||
f_int1 f_int2 f_char1 f_char2 f_charbig
|
||||
NULL -20 -20 -20 #NULL#
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (
|
||||
f_int1 INTEGER, f_int2 INTEGER,
|
||||
f_char1 CHAR(10), f_char2 CHAR(10), f_charbig VARCHAR(1000) )
|
||||
PARTITION BY LIST(MOD(f_int1,2))
|
||||
SUBPARTITION BY KEY(f_int1)
|
||||
(PARTITION part1 VALUES IN (-1) (SUBPARTITION sp1, SUBPARTITION sp2),
|
||||
PARTITION part2 VALUES IN (0) (SUBPARTITION sp3, SUBPARTITION sp5),
|
||||
PARTITION part3 VALUES IN (1) (SUBPARTITION sp4, SUBPARTITION sp6));
|
||||
INSERT INTO t1 SET f_int1 = 2, f_int2 = 2, f_char1 = '2', f_char2 = '2', f_charbig = '===2===';
|
||||
INSERT INTO t1 SET f_int1 = 2, f_int2 = 2, f_char1 = '2', f_char2 = '2', f_charbig = '===2===';
|
||||
SELECT * FROM t1 WHERE f_int1 IS NULL;
|
||||
f_int1 f_int2 f_char1 f_char2 f_charbig
|
||||
drop table t1;
|
||||
End of 5.1 tests
|
||||
|
||||
Reference in New Issue
Block a user