From: | Harald Fuchs <hari(dot)fuchs(at)gmail(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Large Objects: Sizeof and Deleting Unlinked LOs |
Date: | 2010-02-11 14:10:55 |
Message-ID: | puy6iz6exc.fsf@srv.protecting.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
In article <4B72AEB3(dot)4000809(at)selestial(dot)com>,
Howard Cole <howardnews(at)selestial(dot)com> writes:
> Is there an SQL function to determine the size of a large object?
I'm using a pgsql helper function for that:
CREATE FUNCTION lo_size(oid oid) RETURNS integer
LANGUAGE plpgsql
AS $$
DECLARE
fd int;
res int;
i int;
BEGIN
fd = lo_open(oid, 262144); -- INV_READ
IF fd < 0 THEN
RAISE EXCEPTION 'lo_open returns %', fd;
END IF;
res = lo_lseek(fd, 0, 2); -- SEEK_END
IF res < 0 THEN
RAISE EXCEPTION 'lo_lseek returns %', res;
END IF;
i = lo_close(fd);
IF i < 0 THEN
RAISE EXCEPTION 'lo_close returns %', i;
END IF;
RETURN res;
END;
$$;
> Also, can I safely delete all the large objects in
> pg_catalog.pg_largeobject? For example:
> select lo_unlink(loid) from (select distinct loid from
> pg_catalog.pg_largeobject) as loids where loid not in (select my_oid
> from my_only_table_that_uses_large_objects)
Did you have a look at contrib/lo?
From | Date | Subject | |
---|---|---|---|
Next Message | Filip Rembiałkowski | 2010-02-11 14:12:51 | Re: error migrating database from 8.4 to 8.3 |
Previous Message | A. Kretschmer | 2010-02-11 13:53:23 | Re: trouble with unique constraint |