Re: contrib/pgcrypto functions not IMMUTABLE?

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/

In response to

Responses

Browse pgsql-hackers by date

  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?