summaryrefslogtreecommitdiff
path: root/contrib/lo
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2002-08-22 00:01:51 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2002-08-22 00:01:51 +0000
commitb663f3443ba096a06970214c3e83e79f6e570b84 (patch)
tree049e26c1b02535c12bee6e60ba89cf1d42a41a72 /contrib/lo
parent606c9b9d4fafe9300d039c044edc9727c0ed43c9 (diff)
downloadpostgresql-b663f3443ba096a06970214c3e83e79f6e570b84.tar.gz
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 ...
Diffstat (limited to 'contrib/lo')
-rw-r--r--contrib/lo/lo.sql.in12
-rw-r--r--contrib/lo/lo_drop.sql12
2 files changed, 9 insertions, 15 deletions
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