Re: user name doesn't seem to resolve to $user in search_path

From: frank(dot)messie(at)osix(dot)nl
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-admin(at)postgresql(dot)org, pgsql-admin-owner(at)postgresql(dot)org
Subject: Re: user name doesn't seem to resolve to $user in search_path
Date: 2003-10-17 07:44:35
Message-ID: OFF5336105.5AFEC563-ONC1256DC2.00298B28-C1256DC2.0023FDCA@osix.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Tom,
Thanks for the tip.

I discovered that the problem was solved by telling Postgres

CREATE SCHEMA tstuser AUTHORIZATION tstusr

(maybe it was not clear that this was done by user postgres and that the
table creation was done by user tstuser)

So, the $user is being resolved correctly, provided the user has the
proper rights.
However,
I still have one problem.
If I have set the search_path as follows

SET search_path TO myschema

the $user is removed from the search_path.

How do I get it back?

SET search_path TO $user

gives an parsing error caused by the $ sign.


Vriendelijke groeten, Kind regards,
Frank Messie

pgsql-admin-owner(at)postgresql(dot)org wrote on 16-10-2003 19:29:53:

> frank(dot)messie(at)osix(dot)nl writes:
> > I have a problem with the following.
> > I start psql as user "testusr" in database "testdb"
> > In the database I have created a schema with the name of a user
> > CREATE SCHEMA testusr ;
> > The search_path is the default $user,public
> > Then I create a table
> > CREATE TABLE test (name char(8)) ;
> > Now I get the error message "No namespace have been selected to create

> > in".
>
> This sounds like the search path didn't get recomputed when you created
> the new schema, but I cannot reproduce any such problem:
>
> regression=# create user tstuser;
> CREATE USER
> regression=# grant create on database regression to tstuser;
> GRANT
> regression=# \c - tstuser
> You are now connected as new user "tstuser".
> regression=> select current_schemas(true);
> current_schemas
> ---------------------
> {pg_catalog,public}
> (1 row)
>
> regression=> create schema tstuser;
> CREATE SCHEMA
> regression=> CREATE TABLE test (name char(8)) ;
> CREATE TABLE
> regression=> \dt test
> List of relations
> Schema | Name | Type | Owner
> ---------+------+-------+---------
> tstuser | test | table | tstuser
> (1 row)
>
> regression=> select current_schemas(true);
> current_schemas
> -----------------------------
> {pg_catalog,tstuser,public}
> (1 row)
>
> Are you sure you spelled the schema name the same as the user name?
>
> regards, tom lane
>
> ---------------------------(end of broadcast)---------------------------
> TIP 7: don't forget to increase your free space map settings

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Oli Sennhauser 2003-10-17 08:36:47 Solution: Second postmaster / second DB cluster
Previous Message Tom Lane 2003-10-17 06:35:59 Re: user name doesn't seem to resolve to $user in search_path