Thread: PostgreSQL's hashing function?
Hi!
Does PostgreSQL expose its hash function? I need a fast way to hash a string to a short code using characters in the set [A-Za-z0-9_]. (I'm not sure yet how long this code needs to be, but I think even something as short as length 2 may be enough.)
TIA!
Kynn
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Fri, 22 Feb 2008 16:49:10 -0500 "Kynn Jones" <kynnjo@gmail.com> wrote: > Hi! > Does PostgreSQL expose its hash function? I need a fast way to hash a > string to a short code using characters in the set [A-Za-z0-9_]. > (I'm not sure yet how long this code needs to be, but I think even > something as short as length 2 may be enough.) Is md5 good enough? :) select md5() > > TIA! > > Kynn - -- The PostgreSQL Company since 1997: http://www.commandprompt.com/ PostgreSQL Community Conference: http://www.postgresqlconference.org/ Donate to the PostgreSQL Project: http://www.postgresql.org/about/donate PostgreSQL SPI Liaison | SPI Director | PostgreSQL political pundit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQFHv0VjATb/zqfZUUQRAqUNAJ9zejT/pN1uIDtQYEQ7TQvt0LqFjACfelSy wNa9NNUN8rAfmeqwrKCvUb0= =H8DS -----END PGP SIGNATURE-----
Joshua D. Drake wrote: > On Fri, 22 Feb 2008 16:49:10 -0500 > "Kynn Jones" <kynnjo@gmail.com> wrote: > > >> Hi! >> Does PostgreSQL expose its hash function? I need a fast way to hash a >> string to a short code using characters in the set [A-Za-z0-9_]. >> > Is md5 good enough? :) > Probably not. He said fast. You could use hashtext() which is Postgres's internal hash function. There's some possibility it could change in future versions of Postgres though.
On Fri, Feb 22, 2008 at 8:12 PM, Greg Stark <stark@enterprisedb.com> wrote:
You could use hashtext() which is Postgres's internal hash function.
Awesome!
There's some possibility it could change in future versions of Postgres
though.
I can live with that, especially if all that changes is the implementation, and not its availability. The use I have in mind is strictly internal, so the possibility that a given string may get a different hashkey if PostgreSQL gets upgraded is no problem at all.
Thanks for the pointer! It's not in the docs, so I would have never found it on my own... (It makes me wonder what other "hidden" PostgreSQL goodies are out there. I know, I know, peeking behind the published API is evil... I guess I'm a geek "in a state of sin", to use von Neumann's terms...)
kynn