| Bug #17430 | Partitions: crash on SELECT * FROM t1 WHERE f_int1 IS NULL | ||
|---|---|---|---|
| Submitted: | 15 Feb 2006 16:38 | Modified: | 27 Feb 2006 20:45 |
| Reporter: | Matthias Leich | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Partitions | Severity: | S1 (Critical) |
| Version: | 5.1 | OS: | |
| Assigned to: | Sergei Glukhov | CPU Architecture: | Any |
[15 Feb 2006 16:40]
Matthias Leich
test script
Attachment: ml099.test (application/test, text), 937 bytes.
[15 Feb 2006 17:03]
Matthias Leich
I have a similar testcase with partitioning by list and subpartitioning by key which suffers most probably from the same problem. Pleaste have a look into the attached testcase ml100.test. Again switching to 1 subpartition per partitions removes the crash.
[15 Feb 2006 17:04]
Matthias Leich
testcase
Attachment: ml100.test (application/test, text), 794 bytes.
[24 Feb 2006 16:36]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/3117
[24 Feb 2006 17:31]
Reggie Burnett
Fixed in 5.1.7
[27 Feb 2006 20:45]
Mike Hillyer
Documented in 5.1.7 changelog:
<listitem>
<para>
Partitioning with certain <literal>SUBPARTITION BY
HASH</literal> clauses caused error when querying for
partitioned column with <literal>IS NULL</literal> check. (Bug
#17430)
</para>
</listitem>

Description: 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,3)) SUBPARTITION BY HASH(f_int2 + 1) ( PARTITION part1 VALUES IN (-2) (SUBPARTITION sp1, SUBPARTITION sp2), PARTITION part2 VALUES IN (-1) (SUBPARTITION sp1, SUBPARTITION sp2), PARTITION part3 VALUES IN (0) (SUBPARTITION sp1, SUBPARTITION sp2), PARTITION part4 VALUES IN (1) (SUBPARTITION sp1, SUBPARTITION sp2), PARTITION part5 VALUES IN (2) (SUBPARTITION sp1, SUBPARTITION sp2)); 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; <-- ERROR HY000: Lost connection to MySQL server during query A change from SUBPARTITION BY HASH(f_int2 + 1) to SUBPARTITION BY HASH(f_int2) or 2 subpartitions/per partition to 1 subpartition/per partition removes the crash. My environment: - Intel PC with Linux(SuSE 9.3) - MySQL compiled from source Version 5.1 last ChangeSet@1.2108, 2006-02-15 Please note, that this source contains the fixes for the crashing bugs #16901 and #16907, which improved much but did not help here. How to repeat: Please execute the statements above or use my attached testscript ml099.test copy it to mysql-test/t echo "Dummy" > r/ml099.result # Produce a dummy file with # expected results ./mysql-test-run ml099ml