Re: Query specific table using relative position in search path

From: George Woodring <george(dot)woodring(at)iglass(dot)net>
To: pgsql-sql(at)postgresql(dot)org
Subject: Re: Query specific table using relative position in search path
Date: 2013-11-08 20:57:30
Message-ID: CACi+J=Sbomej2dCgrS-e0tgt8CwOrJ5hRmjh_tda3HvtBZ5FSw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

There is only one user logging in. The web app db user.

If I have two search paths.

search_path='cust1restricted', 'cust1' and
search_path='cust2restricted','cust2'

I am looking for a generic query that would look into the parent schema
without having to know the parent schema
I know that I can do

select * from cust1.table
and
select * from cust2.table

but what I was wondering if there was a way to write the query based on the
position in the search_path

select * from {upOneLevel}.table;

That would work for both search paths.

Thanks
Woody

iGLASS Networks
www.iglass.net

On Fri, Nov 8, 2013 at 3:42 PM, Sergey Konoplev <gray(dot)ru(at)gmail(dot)com> wrote:

> On Fri, Nov 8, 2013 at 8:51 AM, George Woodring
> <george(dot)woodring(at)iglass(dot)net> wrote:
> > Currently we have a database per customer approach to our database
> > methodology. In this we have the customer tables in the public schema.
> We
> > create restrictions by having views in different schemas and modifying
> the
> > search path. (restriction, public).
> >
> > We are investigating having a scheme of having multiple customers in the
> > same database and each of them having their own schema ( restriction,
> > custName ).
> >
> > Is there a way to have a generic query to a custName table by referencing
> > its position in the search_path?
> >
> > Example
> > select * from mytable; -- Gives restricted answers
> > select * from super.mytable -- Gives custName answers
> >
> > Currently this is done by public.mytable, but I am curious if there is a
> > generic way without having to know the custName schema.
>
> I am not quite understand the problem, but my guess is that
>
> search_path = "$user",public
>
> might help you.
>
> It means that every user will "see" (in the meaning that you do not
> need to specify schema explicitly) all the stuff in the public schema
> and in the schema named with the user name after being logged in.
>
> --
> Kind regards,
> Sergey Konoplev
> PostgreSQL Consultant and DBA
>
> http://www.linkedin.com/in/grayhemp
> +1 (415) 867-9984, +7 (901) 903-0499, +7 (988) 888-1979
> gray(dot)ru(at)gmail(dot)com
>

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Sergey Konoplev 2013-11-08 21:32:17 Re: Query specific table using relative position in search path
Previous Message Sergey Konoplev 2013-11-08 20:42:35 Re: Query specific table using relative position in search path