mirror of
https://github.com/MariaDB/server.git
synced 2026-05-08 08:04:29 +02:00
Fixed max_key_length when using UNIQUE keys.
This fixed a bug in GROUP BY on a BLOB column with NULL values. myisam/mi_create.c: Fixed max_key_length when using UNIQUE keys. myisam/mi_unique.c: Simple optimization Make different CRC for keys with null and empty strings. mysql-test/r/group_by.result: Updated results mysql-test/t/group_by.test: Test of bug
This commit is contained in:
parent
2261105194
commit
d78c9adb55
4 changed files with 30 additions and 2 deletions
|
|
@ -24,7 +24,7 @@ my_bool mi_check_unique(MI_INFO *info, MI_UNIQUEDEF *def, byte *record,
|
|||
{
|
||||
my_off_t lastpos=info->lastpos;
|
||||
MI_KEYDEF *key= &info->s->keyinfo[def->key];
|
||||
uchar *key_buff=info->lastkey+info->s->base.max_key_length;
|
||||
uchar *key_buff=info->lastkey2;
|
||||
DBUG_ENTER("mi_check_unique");
|
||||
|
||||
mi_unique_store(record+key->seg->start, unique_hash);
|
||||
|
|
@ -80,7 +80,16 @@ ha_checksum mi_unique_hash(MI_UNIQUEDEF *def, const byte *record)
|
|||
if (keyseg->null_bit)
|
||||
{
|
||||
if (record[keyseg->null_pos] & keyseg->null_bit)
|
||||
{
|
||||
/*
|
||||
Change crc in a way different from an empty string or 0.
|
||||
(This is an optimisation; The code will work even if this isn't
|
||||
done)
|
||||
*/
|
||||
crc=((crc << 8) + 511+
|
||||
(crc >> (8*sizeof(ha_checksum)-8)));
|
||||
continue;
|
||||
}
|
||||
}
|
||||
pos= record+keyseg->start;
|
||||
if (keyseg->flag & HA_VAR_LENGTH)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue