PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Czy w PostgreSQL jest jakaś funkcja skrótu?

To jest funkcja CRC32, która definiuje myślenie sfinksa (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. Tablica wierszy PL/pgSQL

  2. Definiowanie ciągów wieloliniowych w psql

  3. Zaznaczanie wszystkich rekordów, jeśli rekord ma którykolwiek z identyfikatorów z tablicy

  4. Jaki byłby właściwy sposób testowania metod tworzenia łańcuchów QueryBuilder TypeORM?

  5. Nie można zainstalować gem pg w Mavericks za pomocą Postgres.app