mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Fix for bug #31137: Assertion failed: primary_key_no == -1 || primary_key_no == 0,
file .\ha_innodb. Problem: if a partial unique key followed by a non-partial one we declare the second one as a primary key. Fix: sort non-partial unique keys before partial ones. include/my_base.h: Fix for bug #31137: Assertion failed: primary_key_no == -1 || primary_key_no == 0, file .\ha_innodb. - sort unique keys that don't contain partial segments before other keys: set HA_KEY_HAS_PART_KEY_SEG flag for such keys in the mysql_prepare_table(), use it in the sort_keys(); mysql-test/r/innodb_mysql.result: Fix for bug #31137: Assertion failed: primary_key_no == -1 || primary_key_no == 0, file .\ha_innodb. - test result. mysql-test/r/key.result: Fix for bug #31137: Assertion failed: primary_key_no == -1 || primary_key_no == 0, file .\ha_innodb. - test result. mysql-test/t/innodb_mysql.test: Fix for bug #31137: Assertion failed: primary_key_no == -1 || primary_key_no == 0, file .\ha_innodb. - test case. mysql-test/t/key.test: Fix for bug #31137: Assertion failed: primary_key_no == -1 || primary_key_no == 0, file .\ha_innodb. - test case. sql/sql_table.cc: Fix for bug #31137: Assertion failed: primary_key_no == -1 || primary_key_no == 0, file .\ha_innodb. - sort unique keys that don't contain partial segments before other keys: set HA_KEY_HAS_PART_KEY_SEG flag for such keys in the mysql_prepare_table(), use it in the sort_keys(); sql/structs.h: Fix for bug #31137: Assertion failed: primary_key_no == -1 || primary_key_no == 0, file .\ha_innodb. - sort unique keys that don't contain partial segments before other keys: set HA_KEY_HAS_PART_KEY_SEG flag for such keys in the mysql_prepare_table(), use it in the sort_keys();
This commit is contained in:
@@ -87,7 +87,7 @@ typedef struct st_key_part_info { /* Info about a key part */
|
||||
|
||||
typedef struct st_key {
|
||||
uint key_length; /* Tot length of key */
|
||||
uint flags; /* dupp key and pack flags */
|
||||
ulong flags; /* dupp key and pack flags */
|
||||
uint key_parts; /* How many key_parts */
|
||||
uint extra_length;
|
||||
uint usable_key_parts; /* Should normally be = key_parts */
|
||||
|
Reference in New Issue
Block a user