Forum Delphi.cz

Databáze => Firebird a Interbase => Téma založeno: Jirka 05-03-2021, 16:56:40

Název: Firebird 2,5 funkce HASH()
Přispěvatel: Jirka 05-03-2021, 16:56:40
Nevíte jaký hashovací  algoritmus použivá Firebird  - jde mi o to abych  kontrolu na duplicitu vykonal před vlastním uložením dalšího záznamu
Název: Re:Firebird 2,5 funkce HASH()
Přispěvatel: pepak 05-03-2021, 20:43:00
Vzhledem k tomu, že návratová hodnota je typu BIGINT, to nic moc skvělého nebude.

Na http://tracker.firebirdsql.org/browse/CORE-4436 (http://tracker.firebirdsql.org/browse/CORE-4436) jde najít odhadnutý algoritmus výpočtu:

Citace
-  Reverse the string
 - Consider the first position p = 1
 - For each char, shift it's ASCII code to the left by 4 * (p - 1) bits and add up with the previous
 - The resulting sum is the hash

Pokud je to pravda, tak to bych teda určitě pro kontrolu duplicit nepoužíval.