From d68ccf536e950a07b5a7030bf609936fe65aab51 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Sat, 10 Sep 2011 16:39:02 -0400
Subject: [PATCH] Remove double-quoting of table names in clusterdb.  BACKWARD
 COMPABILITY BREAKAGE.

Remove double-quoting of index/table names in reindexdb.  BACKWARD
COMPABILITY BREAKAGE.

Document thate user/database names are preserved with double-quoting by
command-line tools like vacuumdb.
---
 doc/src/sgml/ref/createdb.sgml   | 7 +++++--
 doc/src/sgml/ref/createlang.sgml | 3 ++-
 doc/src/sgml/ref/droplang.sgml   | 1 +
 doc/src/sgml/reference.sgml      | 8 ++++++++
 src/bin/scripts/clusterdb.c      | 2 +-
 src/bin/scripts/createlang.c     | 1 +
 src/bin/scripts/droplang.c       | 1 +
 src/bin/scripts/reindexdb.c      | 4 ++--
 8 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/doc/src/sgml/ref/createdb.sgml b/doc/src/sgml/ref/createdb.sgml
index 3e50173e22a..1516f3396d6 100644
--- a/doc/src/sgml/ref/createdb.sgml
+++ b/doc/src/sgml/ref/createdb.sgml
@@ -90,7 +90,8 @@ PostgreSQL documentation
       <term><option>--tablespace=<replaceable class="parameter">tablespace</replaceable></></term>
       <listitem>
        <para>
-        Specifies the default tablespace for the database.
+        Specifies the default tablespace for the database. (This name
+        is processed as a double-quoted identifier.)
        </para>
       </listitem>
      </varlistentry>
@@ -154,6 +155,7 @@ PostgreSQL documentation
       <listitem>
        <para>
         Specifies the database user who will own the new database.
+        (This name is processed as a double-quoted identifier.)
        </para>
       </listitem>
      </varlistentry>
@@ -163,7 +165,8 @@ PostgreSQL documentation
       <term><option>--template=<replaceable class="parameter">template</replaceable></></term>
       <listitem>
        <para>
-        Specifies the template database from which to build this database.
+        Specifies the template database from which to build this
+        database.  (This name is processed as a double-quoted identifier.)
        </para>
       </listitem>
      </varlistentry>
diff --git a/doc/src/sgml/ref/createlang.sgml b/doc/src/sgml/ref/createlang.sgml
index f01f2983228..d28cfb772ab 100644
--- a/doc/src/sgml/ref/createlang.sgml
+++ b/doc/src/sgml/ref/createlang.sgml
@@ -70,7 +70,8 @@ PostgreSQL documentation
       <term><replaceable class="parameter">langname</replaceable></term>
       <listitem>
        <para>
-        Specifies the name of the procedural language to be installed.
+        Specifies the name of the procedural language to be
+        installed.  (This name is lower-cased.)
        </para>
       </listitem>
      </varlistentry>
diff --git a/doc/src/sgml/ref/droplang.sgml b/doc/src/sgml/ref/droplang.sgml
index 04c3a609e5d..e5d02aa236f 100644
--- a/doc/src/sgml/ref/droplang.sgml
+++ b/doc/src/sgml/ref/droplang.sgml
@@ -73,6 +73,7 @@ PostgreSQL documentation
       <listitem>
        <para>
         Specifies the name of the procedural language to be removed.
+        (This name is lower-cased.)
        </para>
       </listitem>
      </varlistentry>
diff --git a/doc/src/sgml/reference.sgml b/doc/src/sgml/reference.sgml
index 9ae80005cdf..5fd6410991d 100644
--- a/doc/src/sgml/reference.sgml
+++ b/doc/src/sgml/reference.sgml
@@ -198,6 +198,14 @@
     applications is that they can be run on any host, independent of
     where the database server resides.
    </para>
+
+   <para>
+    When specified on the command line, user and databases names have
+    their case preserved &mdash; 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.
+   </para>
   </partintro>
 
    &clusterdb;
diff --git a/src/bin/scripts/clusterdb.c b/src/bin/scripts/clusterdb.c
index f4c317ae149..3742091e2a4 100644
--- a/src/bin/scripts/clusterdb.c
+++ b/src/bin/scripts/clusterdb.c
@@ -177,7 +177,7 @@ cluster_one_database(const char *dbname, bool verbose, const char *table,
 	if (verbose)
 		appendPQExpBuffer(&sql, " VERBOSE");
 	if (table)
-		appendPQExpBuffer(&sql, " %s", fmtId(table));
+		appendPQExpBuffer(&sql, " %s", table);
 	appendPQExpBuffer(&sql, ";\n");
 
 	conn = connectDatabase(dbname, host, port, username, prompt_password, progname);
diff --git a/src/bin/scripts/createlang.c b/src/bin/scripts/createlang.c
index c2153db630e..2f667e864a5 100644
--- a/src/bin/scripts/createlang.c
+++ b/src/bin/scripts/createlang.c
@@ -164,6 +164,7 @@ main(int argc, char *argv[])
 		exit(1);
 	}
 
+	/* lower case language name */
 	for (p = langname; *p; p++)
 		if (*p >= 'A' && *p <= 'Z')
 			*p += ('a' - 'A');
diff --git a/src/bin/scripts/droplang.c b/src/bin/scripts/droplang.c
index 7fadee0d513..f136a760ff0 100644
--- a/src/bin/scripts/droplang.c
+++ b/src/bin/scripts/droplang.c
@@ -165,6 +165,7 @@ main(int argc, char *argv[])
 		exit(1);
 	}
 
+	/* lower case language name */
 	for (p = langname; *p; p++)
 		if (*p >= 'A' && *p <= 'Z')
 			*p += ('a' - 'A');
diff --git a/src/bin/scripts/reindexdb.c b/src/bin/scripts/reindexdb.c
index 53fff01a74b..caeed7511ee 100644
--- a/src/bin/scripts/reindexdb.c
+++ b/src/bin/scripts/reindexdb.c
@@ -223,9 +223,9 @@ reindex_one_database(const char *name, const char *dbname, const char *type,
 
 	appendPQExpBuffer(&sql, "REINDEX");
 	if (strcmp(type, "TABLE") == 0)
-		appendPQExpBuffer(&sql, " TABLE %s", fmtId(name));
+		appendPQExpBuffer(&sql, " TABLE %s", name);
 	else if (strcmp(type, "INDEX") == 0)
-		appendPQExpBuffer(&sql, " INDEX %s", fmtId(name));
+		appendPQExpBuffer(&sql, " INDEX %s", name);
 	else if (strcmp(type, "DATABASE") == 0)
 		appendPQExpBuffer(&sql, " DATABASE %s", fmtId(name));
 	appendPQExpBuffer(&sql, ";\n");
-- 
GitLab