Skip to content

Commit 9ab7ab5

Browse files
author
Hiroshi Inoue
committed
Add casts between lo and oid.
1 parent 699782b commit 9ab7ab5

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

contrib/lo/lo.sql.in

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
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';
1717
CREATE FUNCTION lo_in(cstring)
1818
RETURNS lo
1919
AS 'MODULE_PATHNAME'
20-
LANGUAGE 'C';
20+
LANGUAGE 'C' IMMUTABLE;
2121

2222
-- used by the lo type, it returns the oid of the object
2323
CREATE FUNCTION lo_out(lo)
2424
RETURNS cstring
2525
AS 'MODULE_PATHNAME'
26-
LANGUAGE 'C';
26+
LANGUAGE 'C' IMMUTABLE;
2727

2828
-- finally the type itself
2929
CREATE TYPE lo (
@@ -37,7 +37,7 @@ CREATE TYPE lo (
3737
CREATE FUNCTION lo_oid(lo)
3838
RETURNS oid
3939
AS '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';
4646
CREATE FUNCTION oid(lo)
4747
RETURNS oid
4848
AS '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);
5354
CREATE FUNCTION lo(oid)
5455
RETURNS lo
5556
AS '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
5961
CREATE FUNCTION lo_manage()

0 commit comments

Comments
 (0)