Received: from maia.hub.org (maia-2.hub.org [200.46.204.251]) by mail.postgresql.org (Postfix) with ESMTP id D72AEB5DBE8 for ; Wed, 7 Sep 2011 22:37:39 -0300 (ADT) Received: from mail.postgresql.org ([200.46.204.86]) by maia.hub.org (mx1.hub.org [200.46.204.251]) (amavisd-maia, port 10024) with ESMTP id 81023-08 for ; Thu, 8 Sep 2011 01:37:33 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from momjian.us (momjian.us [70.90.9.53]) by mail.postgresql.org (Postfix) with ESMTP id AE493B5DBE5 for ; Wed, 7 Sep 2011 22:37:32 -0300 (ADT) Received: (from bruce@localhost) by momjian.us (8.11.6/8.11.6) id p881bSj10401; Wed, 7 Sep 2011 21:37:28 -0400 (EDT) From: Bruce Momjian Message-Id: <201109080137.p881bSj10401@momjian.us> Subject: Re: createuser/dropuser username In-Reply-To: <7070.1315433223@sss.pgh.pa.us> To: Tom Lane Date: Wed, 7 Sep 2011 21:37:28 -0400 (EDT) CC: Susanne Ebrecht , Robert Haas , Grzegorz Szpetkowski , pgsql-docs@postgresql.org X-Mailer: ELM [version 2.4ME+ PL124 (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="US-ASCII" X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=-2.404 tagged_above=-5 required=5 tests=BAYES_00=-1.9, RP_MATCHES_RCVD=-0.504 X-Spam-Level: X-Archive-Number: 201109/27 X-Sequence-Number: 6948 Tom Lane wrote: > Bruce Momjian writes: > > Uh, I did some digging after this email report and found it does need > > some cleanup, which is done in the attached patch. > > > It removes quoting for table references in clusterdb and index/table > > references in reindexdb, > > Uh, surely that breaks things. Or did you miss my statement that the > current behavior is what is intended? I saw that, but how is that consistent with other command-line tools? What is the logic that has some tools preserve case and others not? > > and adds a general documentation overview about > > when case is preserved and suggests quoting, and adds documentation > > where special quoting happens. > > I don't find the documentation changes to be improvements either. > Possibly instead of > > > ! Specifies the default tablespace for the database (double-quoted internally). > > you could do something like > > Specifies the default tablespace for the database. (This name > is not subject to case-folding.) OK. > > + > > + When specified on the command line, user and databases names have > > + their case preserved — the presence of spaces or special > > + characters might require quoting. Table names and other identifiers > > + do not have their case preserved, except where documented, and > > + might require quoting. > > + > > This latter sentence is just plain wrong. Really? Pg_dump doesn't preserve case for table names: pg_dump -t Test test $ pg_dump -t Test test pg_dump: No matching tables were found $ pg_dump -t '"Test"' test -- -- PostgreSQL database dump ... and vacuumdb certainly does not: vacuumdb --analyze --verbose --table 'foo(bar)' xyzzy $ vacuumdb --analyze --verbose --table 'Test (x)' test vacuumdb: vacuuming of table "Test (x)" in database "test" failed: ERROR: relation "test" does not exist $ vacuumdb --analyze --verbose --table '"Test" (x)' test INFO: vacuuming "public.Test" INFO: "Test": found 0 removable, 0 nonremovable row versions in 0 out of 0 pages ... Who does? reindexdb and clusterdb did before my patch, but that hardly seems consistent. -- Bruce Momjian http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. +