如果我在 varchar 上应用哈希索引,postgres 10 将使用什么算法来哈希该值?会是MD5吗?低语3?FNV-1?我无法在任何地方找到此记录。
您可以使用以下查询找到正确的函数:
SELECT DISTINCT p.amproc
FROM pg_amproc p
JOIN pg_opfamily f ON p.amprocfamily = f.oid
JOIN pg_am a ON f.opfmethod = a.oid
WHERE a.amname = 'hash'
AND p.amproclefttype = 'text'::regtype;
Run Code Online (Sandbox Code Playgroud)
该函数是hashtext,它hash_any从backend/access/hash/hashfunc.c内部调用。
该函数的注释告诉您更多信息:
SELECT DISTINCT p.amproc
FROM pg_amproc p
JOIN pg_opfamily f ON p.amprocfamily = f.oid
JOIN pg_am a ON f.opfmethod = a.oid
WHERE a.amname = 'hash'
AND p.amproclefttype = 'text'::regtype;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
637 次 |
| 最近记录: |