mirror of
https://github.com/MariaDB/server.git
synced 2025-11-08 00:28:29 +03:00
MDEV-24726 Assertion on compressed varstring as key field in optimizer
temporary table Compressed field cannot be part of a key by its nature: there is no data to order, only the compressed data. For optimizer temporary table we create uncompressed substitute. In all other cases (MDEV-16808) we don't use key: add_keyuse() is skipped by !field->compression_method() condition.
This commit is contained in:
@@ -7082,7 +7082,13 @@ add_key_part(DYNAMIC_ARRAY *keyuse_array, KEY_FIELD *key_field)
|
||||
}
|
||||
}
|
||||
}
|
||||
if (field->hash_join_is_possible() &&
|
||||
/*
|
||||
Compressed field cannot be part of a key. For optimizer temporary table
|
||||
compressed fields are replaced by uncompressed, see
|
||||
is_optimizer_tmp_table() and Field_*_compressed::make_new_field().
|
||||
*/
|
||||
if (!field->compression_method() &&
|
||||
field->hash_join_is_possible() &&
|
||||
(key_field->optimize & KEY_OPTIMIZE_EQ) &&
|
||||
key_field->val->used_tables())
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user