mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Merge branch '10.6' into 10.7
This commit is contained in:
@@ -10001,8 +10001,7 @@ uint8 ha_partition::table_cache_type()
|
||||
|
||||
uint32 ha_partition::calculate_key_hash_value(Field **field_array)
|
||||
{
|
||||
ulong nr1= 1;
|
||||
ulong nr2= 4;
|
||||
Hasher hasher;
|
||||
bool use_51_hash;
|
||||
use_51_hash= MY_TEST((*field_array)->table->part_info->key_algorithm ==
|
||||
partition_info::KEY_ALGORITHM_51);
|
||||
@@ -10029,12 +10028,12 @@ uint32 ha_partition::calculate_key_hash_value(Field **field_array)
|
||||
{
|
||||
if (field->is_null())
|
||||
{
|
||||
nr1^= (nr1 << 1) | 1;
|
||||
hasher.add_null();
|
||||
continue;
|
||||
}
|
||||
/* Force this to my_hash_sort_bin, which was used in 5.1! */
|
||||
uint len= field->pack_length();
|
||||
my_charset_bin.hash_sort(field->ptr, len, &nr1, &nr2);
|
||||
hasher.add(&my_charset_bin, field->ptr, len);
|
||||
/* Done with this field, continue with next one. */
|
||||
continue;
|
||||
}
|
||||
@@ -10052,12 +10051,12 @@ uint32 ha_partition::calculate_key_hash_value(Field **field_array)
|
||||
{
|
||||
if (field->is_null())
|
||||
{
|
||||
nr1^= (nr1 << 1) | 1;
|
||||
hasher.add_null();
|
||||
continue;
|
||||
}
|
||||
/* Force this to my_hash_sort_bin, which was used in 5.1! */
|
||||
uint len= field->pack_length();
|
||||
my_charset_latin1.hash_sort(field->ptr, len, &nr1, &nr2);
|
||||
hasher.add(&my_charset_latin1, field->ptr, len);
|
||||
continue;
|
||||
}
|
||||
/* New types in mysql-5.6. */
|
||||
@@ -10084,9 +10083,9 @@ uint32 ha_partition::calculate_key_hash_value(Field **field_array)
|
||||
}
|
||||
/* fall through, use collation based hashing. */
|
||||
}
|
||||
field->hash(&nr1, &nr2);
|
||||
field->hash(&hasher);
|
||||
} while (*(++field_array));
|
||||
return (uint32) nr1;
|
||||
return (uint32) hasher.finalize();
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user