mirror of
https://github.com/postgres/postgres.git
synced 2025-04-25 21:42:33 +03:00
Speed up generation of Unicode hash functions.
Sets of Unicode keys are picky about the primes used when generating a perfect hash function for them. Callers can spend many seconds iterating through all the possible combinations of candidate multipliers and seeds to find one that works. Unicode updates typically happen only once a year, but it still makes development and testing of Unicode scripts unnecessarily slow. To fix, iterate over the primes in the innermost loop. This does not change any existing functions checked into the tree.
This commit is contained in:
parent
b05f7ecec4
commit
ba958299ea
@ -87,13 +87,13 @@ sub generate_hash_function
|
||||
my $hash_seed2;
|
||||
my @subresult;
|
||||
FIND_PARAMS:
|
||||
foreach (17, 31, 127, 8191)
|
||||
for ($hash_seed1 = 0; $hash_seed1 < 10; $hash_seed1++)
|
||||
{
|
||||
$hash_mult2 = $_; # "foreach $hash_mult2" doesn't work
|
||||
for ($hash_seed1 = 0; $hash_seed1 < 10; $hash_seed1++)
|
||||
for ($hash_seed2 = 0; $hash_seed2 < 10; $hash_seed2++)
|
||||
{
|
||||
for ($hash_seed2 = 0; $hash_seed2 < 10; $hash_seed2++)
|
||||
foreach (17, 31, 127, 8191)
|
||||
{
|
||||
$hash_mult2 = $_; # "foreach $hash_mult2" doesn't work
|
||||
@subresult = _construct_hash_table(
|
||||
$keys_ref, $hash_mult1, $hash_mult2,
|
||||
$hash_seed1, $hash_seed2);
|
||||
|
Loading…
x
Reference in New Issue
Block a user