Re: 回复: [GENERAL] How to make the user-defined function or type beingaccessed in the global database server?

From: Craig Ringer <craig(at)postnewspapers(dot)com(dot)au>
To: 页公倒龙 <77287991(at)qq(dot)com>
Cc: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: 回复: [GENERAL] How to make the user-defined function or type beingaccessed in the global database server?
Date: 2011-02-21 08:42:47
Message-ID: 4D622587.9080406@postnewspapers.com.au
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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/

In response to

Browse pgsql-general by date

  From Date Subject
Next Message John R Pierce 2011-02-21 08:54:51 Re: 回复: [GENERAL] How to make the user-defined function or type beingaccessed in the global database server?
Previous Message Craig Ringer 2011-02-21 08:37:15 Re: Worst case scenario of a compromised non super-user PostgreSQL user account