• Sergei Golubchik's avatar
    MDEV-5461 Assertion `length <= column->length' fails in write_block_record... · 90e22408
    Sergei Golubchik authored
    MDEV-5461 Assertion `length <= column->length' fails in write_block_record with functions in select list, GROUP BY, ORDER BY
    
    Old code in create_tmp_table(), that created an extra one-byte field (recinfo)
    before every NULL-able grouping field (Field) in the tmp table, did not actually work.
    Because the matching code in end_update(), that was supposed to update this byte,
    was using a wrong offset, updating the first byte of the Field, not a byte before it.
    Normally this wasn't an issue, because the Field value (written later in end_update)
    was overwriting this byte anyway. But in this bug the Field was Field_null, with zero
    length, so end_update() was overwriting the first byte of the following field.
    And the following field was not-nullable constant, which was stored only once in
    create_tmp_table and never updated later.
    
    Fixed by removing the code that didn't do any useful work anyway.
    90e22408
sql_select.cc 774 KB