Может быть, вы можете использовать decode(substring(md5('foo') for 8), 'hex')
.Это даст вам байты первых 4 байтов хеша md5 этой строки.
Вы можете преобразовать его в целое число, используя что-то вроде:
create function bytea_to_integer(bytea)
returns integer strict
language sql as $$
select
(get_byte($1,0)*1::integer<<0*8)
+(get_byte($1,1)*1::integer<<1*8)
+(get_byte($1,2)*1::integer<<2*8)
+(get_byte($1,3)*1::integer<<3*8);
$$;