Search Postgresql Archives

Re: Naive schema questions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Fabulous stuff! I am so delighted I chose Postgresql a couple of year
ago. Thank you for the valuable insights. A comment or two below:

On 27/05/04, Peter Eisentraut (peter_e@gmx.net) wrote:
> Am Donnerstag, 27. Mai 2004 13:15 schrieb Rory Campbell-Lange:
> > I imagined schemas might allow me to globally update functions across a
> > database hosting many schemas with the same structure.

> Put your data tables in separate schemas, put the functions in yet
> another schema, and then when you connect set the schema search path
> to "dataschema, functionschema" (or maybe vice versa).

On 27/05/04, Nick Barr (nicky@chuckie.co.uk) wrote:
> > Put your data tables in separate schemas, put the functions in yet
> > another schema, and then when you connect set the schema search path
> > to "dataschema, functionschema" (or maybe vice versa).

> Or when you make the calls in the web app use the following:
> 
> SELECT function_schema.function1(arg1, arg2);
> instead of just:
> SELECT function1(arg1, arg2);
> But like Peter said have a schema per client/"instance" of your database.

Is it ok to use the public schema for the functions? It means it is that
much easier to reload the functions as one wouldn't need to specify the
search_path.

On 27/05/04, Jan Wieck (JanWieck@Yahoo.com) wrote:
...
> It is even better. The property that set's your "schema context" is 
> called search_path. This contains a list of schema names. For an 
> unqualified (schema name not explicitly given) object, be that a table, 
> sequence, view, function or whatever, the system looks in all those 
> schemas in that particular order and uses the first found.
> 
> With that, you can have your common or shared objects in a central 
> schema "schema_common", and everything that's application specific in 
> "schema_A", "schema_B". The connection just has to set the search_path 
> at the beginning with
> 
>     set search_path = schema_A, schema_common;

This is brillliant. I didn't note this in the documentation.

> >I suppose I'm trying to think of how I might implement the second point
> >in this list (also from dd-schemas.html):
...
> >    - To organize database objects into logical groups to make them more
> >      manageable.
...
> Yes, yes and yes. Plus the ability for you to do cross database joins 
> for global analyzing for example.

Just a question on this, Jan. Would one expect UNIONS for this sort of
work?

I just did this which is useful anyway:
schematest=> SELECT 
            (select count(id) from b.messages) 
            + 
            (select count(id) from a.messages);
 ?column? 
 ----------
         5
         (1 row)

I see the horizons expanding! Common data (I often have an 'info' table)
can be shared between schemas. I think my search_patch might go:

    this_schema, info_schema, public_schema

Thanks very much for the information.

Kind regards,
Rory
-- 
Rory Campbell-Lange 
<rory@campbell-lange.net>
<www.campbell-lange.net>

---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
      subscribe-nomail command to majordomo@postgresql.org so that your
      message can get through to the mailing list cleanly

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux