Re: [HACKERS] pg_restore ignores PGDATABASE

2012-08-27 Thread Bruce Momjian
On Sun, Feb 19, 2012 at 10:25:55AM -0500, Andrew Dunstan wrote:
 
 
 On 02/19/2012 08:02 AM, Robert Haas wrote:
 On Sun, Feb 19, 2012 at 1:18 AM, Erik Rijkerse...@xs4all.nl  wrote:
 On Sun, February 19, 2012 06:27, Robert Haas wrote:
 On Sat, Feb 18, 2012 at 11:58 AM, Erik Rijkerse...@xs4all.nl  wrote:
 pg_restore ignores environment variable PGDATABASE.
 What exactly do you mean by ignores?  pg_restore prints results to
 standard output unless a database name is specified.  AFAIK, there's
 no syntax to say I want a direct-to-database restore to whatever you
 think the default database is.
 That's right, and that seems contradictory with:
 
 This utility [pg_restore], like most other PostgreSQL utilities, also uses 
 the environment
 variables supported by libpq (see Section 31.13).
 
 as pg_restore does 'ignore' (for want of a better word) PGDATABASE.
 
 But I think I can conclude from your reply that that behaviour is indeed 
 intentional.
 It is, because we want there to be a way of converting a custom or tar
 format archive back to text.  I think that probably works out for the
 best anyway, since pg_restore is a sufficiently dangerous operation
 that you want to be darn sure you're not doing it on the wrong
 database.  dropdb also requires a database name, while createdb does
 not, for similar reasons...
 
 Right, I think we probably need to adjust the docs slightly to match
 this reality.

Done, with the attached patch.

-- 
  Bruce Momjian  br...@momjian.ushttp://momjian.us
  EnterpriseDB http://enterprisedb.com

  + It's impossible for everything to be true. +
diff --git a/doc/src/sgml/ref/pg_restore.sgml b/doc/src/sgml/ref/pg_restore.sgml
new file mode 100644
index bc3d2b7..b276da6
*** a/doc/src/sgml/ref/pg_restore.sgml
--- b/doc/src/sgml/ref/pg_restore.sgml
***
*** 686,692 
para
 This utility, like most other productnamePostgreSQL/ utilities,
 also uses the environment variables supported by applicationlibpq/
!(see xref linkend=libpq-envars).
/para
  
   /refsect1
--- 686,693 
para
 This utility, like most other productnamePostgreSQL/ utilities,
 also uses the environment variables supported by applicationlibpq/
!(see xref linkend=libpq-envars).  However, it does not read
!envarPGDATABASE/envar when a database name is not supplied.
/para
  
   /refsect1

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] pg_restore ignores PGDATABASE

2012-02-19 Thread Robert Haas
On Sun, Feb 19, 2012 at 1:18 AM, Erik Rijkers e...@xs4all.nl wrote:
 On Sun, February 19, 2012 06:27, Robert Haas wrote:
 On Sat, Feb 18, 2012 at 11:58 AM, Erik Rijkers e...@xs4all.nl wrote:
 pg_restore ignores environment variable PGDATABASE.

 What exactly do you mean by ignores?  pg_restore prints results to
 standard output unless a database name is specified.  AFAIK, there's
 no syntax to say I want a direct-to-database restore to whatever you
 think the default database is.

 That's right, and that seems contradictory with:

 This utility [pg_restore], like most other PostgreSQL utilities, also uses 
 the environment
 variables supported by libpq (see Section 31.13).

 as pg_restore does 'ignore' (for want of a better word) PGDATABASE.

 But I think I can conclude from your reply that that behaviour is indeed 
 intentional.

It is, because we want there to be a way of converting a custom or tar
format archive back to text.  I think that probably works out for the
best anyway, since pg_restore is a sufficiently dangerous operation
that you want to be darn sure you're not doing it on the wrong
database.  dropdb also requires a database name, while createdb does
not, for similar reasons...

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] pg_restore ignores PGDATABASE

2012-02-19 Thread Andrew Dunstan



On 02/19/2012 08:02 AM, Robert Haas wrote:

On Sun, Feb 19, 2012 at 1:18 AM, Erik Rijkerse...@xs4all.nl  wrote:

On Sun, February 19, 2012 06:27, Robert Haas wrote:

On Sat, Feb 18, 2012 at 11:58 AM, Erik Rijkerse...@xs4all.nl  wrote:

pg_restore ignores environment variable PGDATABASE.

What exactly do you mean by ignores?  pg_restore prints results to
standard output unless a database name is specified.  AFAIK, there's
no syntax to say I want a direct-to-database restore to whatever you
think the default database is.

That's right, and that seems contradictory with:

This utility [pg_restore], like most other PostgreSQL utilities, also uses the 
environment
variables supported by libpq (see Section 31.13).

as pg_restore does 'ignore' (for want of a better word) PGDATABASE.

But I think I can conclude from your reply that that behaviour is indeed 
intentional.

It is, because we want there to be a way of converting a custom or tar
format archive back to text.  I think that probably works out for the
best anyway, since pg_restore is a sufficiently dangerous operation
that you want to be darn sure you're not doing it on the wrong
database.  dropdb also requires a database name, while createdb does
not, for similar reasons...


Right, I think we probably need to adjust the docs slightly to match 
this reality.


cheers

andrew


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] pg_restore ignores PGDATABASE

2012-02-18 Thread Robert Haas
On Sat, Feb 18, 2012 at 11:58 AM, Erik Rijkers e...@xs4all.nl wrote:
 pg_restore ignores environment variable PGDATABASE.

What exactly do you mean by ignores?  pg_restore prints results to
standard output unless a database name is specified.  AFAIK, there's
no syntax to say I want a direct-to-database restore to whatever you
think the default database is.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] pg_restore ignores PGDATABASE

2012-02-18 Thread Erik Rijkers
On Sun, February 19, 2012 06:27, Robert Haas wrote:
 On Sat, Feb 18, 2012 at 11:58 AM, Erik Rijkers e...@xs4all.nl wrote:
 pg_restore ignores environment variable PGDATABASE.

 What exactly do you mean by ignores?  pg_restore prints results to
 standard output unless a database name is specified.  AFAIK, there's
 no syntax to say I want a direct-to-database restore to whatever you
 think the default database is.

That's right, and that seems contradictory with:

This utility [pg_restore], like most other PostgreSQL utilities, also uses the 
environment
variables supported by libpq (see Section 31.13).

as pg_restore does 'ignore' (for want of a better word) PGDATABASE.

But I think I can conclude from your reply that that behaviour is indeed 
intentional.


thanks,

Erik Rijkers



-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers