mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-28077 'Wrong create options' error with 'big_tables' enabled
The cause of the bug is overflow of uint16 KEY_PART_INFO::length and/or uint16 KEY_PART_INFO::store_length. The solution is to increase the size of those variables to the 'uint' type (which is 32-bit long)
This commit is contained in:
@ -71,14 +71,14 @@ typedef struct st_key_part_info { /* Info about a key part */
|
||||
uint offset; /* Offset in record (from 0) */
|
||||
uint null_offset; /* Offset to null_bit in record */
|
||||
/* Length of key part in bytes, excluding NULL flag and length bytes */
|
||||
uint16 length;
|
||||
uint length;
|
||||
/*
|
||||
Number of bytes required to store the keypart value. This may be
|
||||
different from the "length" field as it also counts
|
||||
- possible NULL-flag byte (see HA_KEY_NULL_LENGTH)
|
||||
- possible HA_KEY_BLOB_LENGTH bytes needed to store actual value length.
|
||||
*/
|
||||
uint16 store_length;
|
||||
uint store_length;
|
||||
uint16 key_type;
|
||||
uint16 fieldnr; /* Fieldnr begins counting from 1 */
|
||||
uint16 key_part_flag; /* 0 or HA_REVERSE_SORT */
|
||||
|
Reference in New Issue
Block a user