Re: »Ø¸´£º [GENERAL] How to make the user-defined function or type beingaccessed in the global database server? - Mailing list pgsql-general

From Craig Ringer
Subject Re: »Ø¸´£º [GENERAL] How to make the user-defined function or type beingaccessed in the global database server?
Date
Msg-id 4D622587.9080406@postnewspapers.com.au
Whole thread Raw
In response to 回复: [GENERAL] How to make the user-defined function or type beingaccessed in the global database server?  ("页公倒龙" <77287991@qq.com>)
List pgsql-general
On 20/02/2011 2:13 PM, 页公倒龙 wrote:
> Thanks for your replying. But actually there are some difference
> database now, and I really want to define the user-defined function or
> type one time so that they can be accessed as system-defined function or
> type, how can I do?

It sounds like you want something like Oracle's packages. If so, you're
out of luck: postgresql doesn't support anything like that at this point.

Bundle the functions, type definitions, etc up in a .sql file and run
that on each database. It's cleanest if you do this by creating a new
schema called, say, 'shared', then SET search_path=shared before
creating the functions and types. That way they all go in one place
that's separated from the per-database content. To access them, SET
search_path=shared,public . You can "ALTER USER SET
search_path=shared,public" or "ALTER DATABASE SET
search_path=shared,public" to make it default.

See the manual for more information about schema, and the commands/options:

   SET
   search_path
   CREATE SCHEMA
   CREATE FUNCTION

--
Craig Ringer

Tech-related writing at http://soapyfrogs.blogspot.com/

pgsql-general by date:

Previous
From: Craig Ringer
Date:
Subject: Re: Worst case scenario of a compromised non super-user PostgreSQL user account
Next
From: John R Pierce
Date:
Subject: Re: »Ø¸´£º [GENERAL] How to make the user-defined function or type beingaccessed in the global database server?