From b663f3443ba096a06970214c3e83e79f6e570b84 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 22 Aug 2002 00:01:51 +0000 Subject: Add a bunch of pseudo-types to replace the behavior formerly associated with OPAQUE, as per recent pghackers discussion. I still want to do some more work on the 'cstring' pseudo-type, but I'm going to commit the bulk of the changes now before the tree starts shifting under me ... --- contrib/lo/lo.sql.in | 12 ++++++------ contrib/lo/lo_drop.sql | 12 +++--------- 2 files changed, 9 insertions(+), 15 deletions(-) (limited to 'contrib/lo') diff --git a/contrib/lo/lo.sql.in b/contrib/lo/lo.sql.in index f9fed597fd..e60b46ce09 100644 --- a/contrib/lo/lo.sql.in +++ b/contrib/lo/lo.sql.in @@ -1,21 +1,21 @@ -- -- PostgreSQL code for LargeObjects -- --- $Id: lo.sql.in,v 1.6 2000/11/21 21:51:58 tgl Exp $ +-- $Id: lo.sql.in,v 1.7 2002/08/22 00:01:39 tgl Exp $ -- -- -- Create the data type -- -- used by the lo type, it takes an oid and returns an lo object -create function lo_in(opaque) - returns opaque +create function lo_in(cstring) + returns lo as 'MODULE_PATHNAME' language 'c'; -- used by the lo type, it returns the oid of the object -create function lo_out(opaque) - returns opaque +create function lo_out(lo) + returns cstring as 'MODULE_PATHNAME' language 'c'; @@ -51,6 +51,6 @@ create function lo(oid) -- This is used in triggers create function lo_manage() - returns opaque + returns trigger as 'MODULE_PATHNAME' language 'c'; diff --git a/contrib/lo/lo_drop.sql b/contrib/lo/lo_drop.sql index 2472715a3d..4e4602836c 100644 --- a/contrib/lo/lo_drop.sql +++ b/contrib/lo/lo_drop.sql @@ -6,16 +6,10 @@ -- remove our test table drop table a; --- now drop any sql based functions associated with the lo type -drop function oid(lo); +-- now drop the type and associated C functions +drop type lo CASCADE; --- now drop the type -drop type lo; - --- as the type is gone, remove the C based functions -drop function lo_in(opaque); -drop function lo_out(opaque); -drop function lo(oid); +-- the trigger function has no dependency on the type, so drop separately drop function lo_manage(); -- the lo stuff is now removed from the system -- cgit v1.2.1