PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Има ли хеш функция в PostgreSQL?

Това е функцията CRC32, която дефинира мислещия сфинкс (gem ):

CREATE OR REPLACE FUNCTION crc32(word text)
RETURNS bigint AS $$
DECLARE tmp bigint;
DECLARE i int;
DECLARE j int;
DECLARE byte_length int;
DECLARE word_array bytea;
BEGIN
IF COALESCE(word, '') = '' THEN
return 0;
END IF;

i = 0;
tmp = 4294967295;
byte_length = bit_length(word) / 8;
word_array = decode(replace(word, E'\\\\', E'\\\\\\\\'), 'escape');
LOOP
tmp = (tmp # get_byte(word_array, i))::bigint;
i = i + 1;
j = 0;
LOOP
tmp = ((tmp >> 1) # (3988292384 * (tmp & 1)))::bigint;
j = j + 1;
IF j >= 8 THEN
EXIT;
END IF;
END LOOP;
IF i >= byte_length THEN
EXIT;
END IF;
END LOOP;
return (tmp # 4294967295);
END
$$ IMMUTABLE LANGUAGE plpgsql;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да потърся json колона за празни обекти?

  2. Грешка при хибернация:текущата транзакция е прекратена, командите се игнорират до края на транзакционния блок

  3. Как мога да разреша грешка в целостта на поле, което не съществува?

  4. Как да покажа невидими уникод знаци в psql / postgres?

  5. Postgres:извлича текст до N-тия знак в низ