Casts in foreign schemas - Mailing list pgsql-sql

From Ben Morrow
Subject Casts in foreign schemas
Date
Msg-id 20100608143327.GA67823@osiris.mauzo.dyndns.org
Whole thread Raw
Responses Re: Casts in foreign schemas  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-sql
Is this behaviour expected? (This is with 8.4.3 on FreeBSD.)
   create schema one;   set search_path to one;
   create type foo as (x integer);   create function foo (integer) returns foo       language plpgsql as $$
declare              y foo;           begin               y.x = $1;               return y;           end       $$;
createcast (integer as foo) with function foo (integer);
 
   grant usage on schema one to public;   grant execute on function foo (integer) to public;
   create schema two;
   -- reconnect as a different user
   set search_path to two;   select 3::one.foo;   ERROR:  type "foo" does not exist   CONTEXT:  compilation of PL/pgSQL
function"foo" near line 2
 
   set search_path to two, one;   select 3::foo;    foo   -----    (3)   (1 row)

My understanding of things was that PL/pgSQL functions were compiled at
CREATE FUNCTION time, using the SEARCH_PATH currently in effect. Is that
wrong? Is there some GRANT I'm missing that will make this work?

Ben



pgsql-sql by date:

Previous
From: reyman
Date:
Subject: Re: Multiple subquery with insert into command ?
Next
From: Tom Lane
Date:
Subject: Re: Casts in foreign schemas