Add casts between oid and lo in contrib.
authorHiroshi Inoue <[email protected]>
Fri, 3 Jan 2003 15:43:33 +0000 (15:43 +0000)
committerHiroshi Inoue <[email protected]>
Fri, 3 Jan 2003 15:43:33 +0000 (15:43 +0000)
contrib/lo/lo.sql.in

index 50d3340b16f4d06741569cef0743d2d0a182451b..84f097f592e44474c264a1ca4fc7b5ea9f0939b5 100644 (file)
@@ -17,13 +17,13 @@ SET autocommit TO 'on';
 CREATE FUNCTION lo_in(cstring)
 RETURNS lo
 AS 'MODULE_PATHNAME'
-LANGUAGE 'C';
+LANGUAGE 'C' IMMUTABLE;
 
 -- used by the lo type, it returns the oid of the object
 CREATE FUNCTION lo_out(lo)
 RETURNS cstring
 AS 'MODULE_PATHNAME'
-LANGUAGE 'C';
+LANGUAGE 'C' IMMUTABLE;
 
 -- finally the type itself
 CREATE TYPE lo (
@@ -37,7 +37,7 @@ CREATE TYPE lo (
 CREATE FUNCTION lo_oid(lo)
 RETURNS oid
 AS 'MODULE_PATHNAME'
-LANGUAGE 'C';
+LANGUAGE 'C' IMMUTABLE;
 
 -- same function, named to allow it to be used as a type coercion, eg:
 --    CREATE TABLE a (image lo);
@@ -46,14 +46,16 @@ LANGUAGE 'C';
 CREATE FUNCTION oid(lo)
 RETURNS oid
 AS 'MODULE_PATHNAME', 'lo_oid'
-LANGUAGE 'C';
+LANGUAGE 'C' IMMUTABLE;
+CREATE CAST (lo as oid) WITH FUNCTION oid(lo) AS IMPLICIT;
 
 -- this allows us to convert an oid to a managed lo object
 -- ie: insert into test values (lo_import('/fullpath/file')::lo);
 CREATE FUNCTION lo(oid)
 RETURNS lo
 AS 'MODULE_PATHNAME'
-LANGUAGE 'C';
+LANGUAGE 'C' IMMUTABLE;
+CREATE CAST (oid as lo) WITH FUNCTION lo(oid) AS IMPLICIT;
 
 -- This is used in triggers
 CREATE FUNCTION lo_manage()