Re: MD5 sums of large objects - Mailing list pgsql-sql

From Dirk Jagdmann
Subject Re: MD5 sums of large objects
Date
Msg-id 5d0f60990704081707m56b29423ob5d63103623305b2@mail.gmail.com
Whole thread Raw
In response to Re: MD5 sums of large objects  (Michael Fuhr <mike@fuhr.org>)
Responses Re: MD5 sums of large objects  (Michael Fuhr <mike@fuhr.org>)
List pgsql-sql
Hello Michael,

this works like charm. Although I did fix the argument for lo_lseek:

CREATE OR REPLACE FUNCTION md5(id oid)
RETURNS text
as $$DECLARE fd        integer; size      integer; hashval   text; INV_READ  constant integer := 262144; -- 0x40000
fromlibpq-fs.h SEEK_SET  constant integer := 0; SEEK_END  constant integer := 2;BEGIN IF id is null THEN   RETURN NULL;
ENDIF; fd   := lo_open(id, INV_READ); size := lo_lseek(fd, 0, SEEK_END); PERFORM lo_lseek(fd, 0, SEEK_SET); hashval :=
md5(loread(fd,size)); PERFORM lo_close(fd); RETURN hashval;END;
 
$$
language plpgsql stable strict;
comment on FUNCTION md5(id oid) is 'Calculates the md5 sum of a large object.';

I vote for this function beeing included either somewhere in the
contrib directories, as you often don't need the full power of
pgcrypto is md5 suffices for your hashing needs.

-- 
---> Dirk Jagdmann
----> http://cubic.org/~doj
-----> http://llg.cubic.org


pgsql-sql by date:

Previous
From: Tom Lane
Date:
Subject: Re: [ADMIN] Question on pgpsql function
Next
From: Michael Fuhr
Date:
Subject: Re: MD5 sums of large objects