From: | Michael Fuhr <mike(at)fuhr(dot)org> |
---|---|
To: | Russell Smith <mr-russ(at)pws(dot)com(dot)au> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: contrib/pgcrypto functions not IMMUTABLE? |
Date: | 2005-07-03 06:43:32 |
Message-ID: | 20050703064332.GA34783@winnie.fuhr.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Sun, Jul 03, 2005 at 04:24:31PM +1000, Russell Smith wrote:
> On Sun, 3 Jul 2005 03:32 pm, Michael Fuhr wrote:
> > I've noticed that contrib/pgcrypto/pgcrypto.sql.in doesn't include
> > a volatility category in its CREATE FUNCTION statements, so the
> > functions are all created VOLATILE. Shouldn't most of them be
> > IMMUTABLE? Or do the algorithms have side effects?
>
> I know the salt functions MUST stay volatile, as they produce different output
> every time you call them. I've not looked at the pgcrypto code, so I can't
> make further comment than that.
Yeah, I see that gen_salt() needs to be volatile, but I was thinking
about functions like digest(), encrypt(), decrypt(), etc., that
would be expected to return the same output given the same input.
For example, the core md5() function is immutable, but pgcrypto's
digest() is volatile. I was wondering if that's intentional or
just an oversight.
--
Michael Fuhr
http://www.fuhr.org/~mfuhr/
From | Date | Subject | |
---|---|---|---|
Next Message | Greg Stark | 2005-07-03 06:47:08 | Re: Checkpoint cost, looks like it is WAL/CRC |
Previous Message | Russell Smith | 2005-07-03 06:24:31 | Re: contrib/pgcrypto functions not IMMUTABLE? |