11--
22--PostgreSQL code for LargeObjects
33--
4- --$Id: lo.sql.in,v 1.8 2002/10/18 18:41:20 momjian Exp $
4+ --$Id: lo.sql.in,v 1.9 2002/12/31 10:22:03 inoue Exp $
55--
66--
77--Create the data type
@@ -17,13 +17,13 @@ SET autocommit TO 'on';
1717CREATE FUNCTION lo_in(cstring)
1818RETURNS lo
1919AS 'MODULE_PATHNAME'
20- LANGUAGE 'C';
20+ LANGUAGE 'C' IMMUTABLE ;
2121
2222-- used by the lo type, it returns the oid of the object
2323CREATE FUNCTION lo_out(lo)
2424RETURNS cstring
2525AS 'MODULE_PATHNAME'
26- LANGUAGE 'C';
26+ LANGUAGE 'C' IMMUTABLE ;
2727
2828-- finally the type itself
2929CREATE TYPE lo (
@@ -37,7 +37,7 @@ CREATE TYPE lo (
3737CREATE FUNCTION lo_oid(lo)
3838RETURNS oid
3939AS 'MODULE_PATHNAME'
40- LANGUAGE 'C';
40+ LANGUAGE 'C' IMMUTABLE ;
4141
4242-- same function, named to allow it to be used as a type coercion, eg:
4343-- CREATE TABLE a (image lo);
@@ -46,14 +46,16 @@ LANGUAGE 'C';
4646CREATE FUNCTION oid(lo)
4747RETURNS oid
4848AS 'MODULE_PATHNAME', 'lo_oid'
49- LANGUAGE 'C';
49+ LANGUAGE 'C' IMMUTABLE;
50+ CREATE CAST (lo as oid) WITH FUNCTION oid(lo) AS IMPLICIT;
5051
5152-- this allows us to convert an oid to a managed lo object
5253-- ie: insert into test values (lo_import('/fullpath/file')::lo);
5354CREATE FUNCTION lo(oid)
5455RETURNS lo
5556AS 'MODULE_PATHNAME'
56- LANGUAGE 'C';
57+ LANGUAGE 'C' IMMUTABLE;
58+ CREATE CAST (oid as lo) WITH FUNCTION lo(oid) AS IMPLICIT;
5759
5860-- This is used in triggers
5961CREATE FUNCTION lo_manage()