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:
None 
Category:MySQL Server: Partitions Severity:S1 (Critical)
Version:5.1 OS:
Assigned to: Sergei Glukhov CPU Architecture:Any

[15 Feb 2006 16:38] Matthias Leich
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
[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>