mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	Add casts between oid and lo in contrib.
This commit is contained in:
		@@ -1,7 +1,7 @@
 | 
				
			|||||||
--
 | 
					--
 | 
				
			||||||
--	PostgreSQL code for LargeObjects
 | 
					--	PostgreSQL code for LargeObjects
 | 
				
			||||||
--
 | 
					--
 | 
				
			||||||
--	$Id: lo.sql.in,v 1.8 2002/10/18 18:41:20 momjian Exp $
 | 
					--	$Id: lo.sql.in,v 1.8.2.1 2003/01/03 15:43:33 inoue Exp $
 | 
				
			||||||
--
 | 
					--
 | 
				
			||||||
--
 | 
					--
 | 
				
			||||||
--	Create the data type
 | 
					--	Create the data type
 | 
				
			||||||
@@ -17,13 +17,13 @@ SET autocommit TO 'on';
 | 
				
			|||||||
CREATE FUNCTION lo_in(cstring)
 | 
					CREATE FUNCTION lo_in(cstring)
 | 
				
			||||||
RETURNS lo
 | 
					RETURNS lo
 | 
				
			||||||
AS 'MODULE_PATHNAME'
 | 
					AS 'MODULE_PATHNAME'
 | 
				
			||||||
LANGUAGE 'C';
 | 
					LANGUAGE 'C' IMMUTABLE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- used by the lo type, it returns the oid of the object
 | 
					-- used by the lo type, it returns the oid of the object
 | 
				
			||||||
CREATE FUNCTION lo_out(lo)
 | 
					CREATE FUNCTION lo_out(lo)
 | 
				
			||||||
RETURNS cstring
 | 
					RETURNS cstring
 | 
				
			||||||
AS 'MODULE_PATHNAME'
 | 
					AS 'MODULE_PATHNAME'
 | 
				
			||||||
LANGUAGE 'C';
 | 
					LANGUAGE 'C' IMMUTABLE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- finally the type itself
 | 
					-- finally the type itself
 | 
				
			||||||
CREATE TYPE lo (
 | 
					CREATE TYPE lo (
 | 
				
			||||||
@@ -37,7 +37,7 @@ CREATE TYPE lo (
 | 
				
			|||||||
CREATE FUNCTION lo_oid(lo)
 | 
					CREATE FUNCTION lo_oid(lo)
 | 
				
			||||||
RETURNS oid
 | 
					RETURNS oid
 | 
				
			||||||
AS 'MODULE_PATHNAME'
 | 
					AS 'MODULE_PATHNAME'
 | 
				
			||||||
LANGUAGE 'C';
 | 
					LANGUAGE 'C' IMMUTABLE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- same function, named to allow it to be used as a type coercion, eg:
 | 
					-- same function, named to allow it to be used as a type coercion, eg:
 | 
				
			||||||
--    CREATE TABLE a (image lo);
 | 
					--    CREATE TABLE a (image lo);
 | 
				
			||||||
@@ -46,14 +46,16 @@ LANGUAGE 'C';
 | 
				
			|||||||
CREATE FUNCTION oid(lo)
 | 
					CREATE FUNCTION oid(lo)
 | 
				
			||||||
RETURNS oid
 | 
					RETURNS oid
 | 
				
			||||||
AS 'MODULE_PATHNAME', 'lo_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
 | 
					-- this allows us to convert an oid to a managed lo object
 | 
				
			||||||
-- ie: insert into test values (lo_import('/fullpath/file')::lo);
 | 
					-- ie: insert into test values (lo_import('/fullpath/file')::lo);
 | 
				
			||||||
CREATE FUNCTION lo(oid)
 | 
					CREATE FUNCTION lo(oid)
 | 
				
			||||||
RETURNS lo
 | 
					RETURNS lo
 | 
				
			||||||
AS 'MODULE_PATHNAME'
 | 
					AS 'MODULE_PATHNAME'
 | 
				
			||||||
LANGUAGE 'C';
 | 
					LANGUAGE 'C' IMMUTABLE;
 | 
				
			||||||
 | 
					CREATE CAST (oid as lo) WITH FUNCTION lo(oid) AS IMPLICIT;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- This is used in triggers
 | 
					-- This is used in triggers
 | 
				
			||||||
CREATE FUNCTION lo_manage()
 | 
					CREATE FUNCTION lo_manage()
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user