Re: createuser/dropuser username - Mailing list pgsql-docs
From | Bruce Momjian |
---|---|
Subject | Re: createuser/dropuser username |
Date | |
Msg-id | 201109102039.p8AKdC003965@momjian.us Whole thread Raw |
In response to | Re: createuser/dropuser username (Bruce Momjian <bruce@momjian.us>) |
List | pgsql-docs |
Patch applied. --------------------------------------------------------------------------- Bruce Momjian wrote: > Tom Lane wrote: > > Bruce Momjian <bruce@momjian.us> writes: > > > Alvaro Herrera wrote: > > >> Excerpts from Bruce Momjian's message of jue sep 08 11:52:04 -0300 2011: > > >>> I started going in that direction and stopped because of this example > > >>> in our docs: > > >>> vacuumdb --analyze --verbose --table 'foo(bar)' xyzzy > > > > >> Maybe do it unless there are parens. > > > > > OK, let me give that a try. > > > > I've been thinking more about this, and realized that there is one > > killer argument in favor of not auto-quoting, at least for arguments > > that represent table names: if we quote, there is no way to specify > > a schema-qualified name. > > > > I'm too lazy to troll the archives to verify this, but I am moderately > > sure that this point never came up in the original discussions where > > we concluded that auto-quoting command-line arguments was a good policy, > > because that was before we'd implemented schemas. > > > > So what I'm thinking right now is that we indeed should not auto-quote > > table- or index-name arguments. However, usernames and database names > > taken from the command line are still going to be auto-quoted, because > > that's how things work in connection requests. Is it going to be > > confusing that some things are quoted and some not? > > > > (Of course, any such change would be non-backwards-compatible and would > > have to be suitably documented and release-noted.) > > > > The backwards-compatible alternative would be to invent additional > > schema option arguments so that you could write something like > > "reindexdb --schema foo --table bar", but that seems pretty darn ugly. > > I have implemented what you suggested above, with improved wording. > Patch attached. > > -- > Bruce Momjian <bruce@momjian.us> http://momjian.us > EnterpriseDB http://enterprisedb.com > > + It's impossible for everything to be true. + [ text/x-diff is unsupported, treating like TEXT/PLAIN ] > diff --git a/doc/src/sgml/ref/createdb.sgml b/doc/src/sgml/ref/createdb.sgml > new file mode 100644 > index 3e50173..1516f33 > *** a/doc/src/sgml/ref/createdb.sgml > --- b/doc/src/sgml/ref/createdb.sgml > *************** PostgreSQL documentation > *** 90,96 **** > <term><option>--tablespace=<replaceable class="parameter">tablespace</replaceable></></term> > <listitem> > <para> > ! Specifies the default tablespace for the database. > </para> > </listitem> > </varlistentry> > --- 90,97 ---- > <term><option>--tablespace=<replaceable class="parameter">tablespace</replaceable></></term> > <listitem> > <para> > ! Specifies the default tablespace for the database. (This name > ! is processed as a double-quoted identifier.) > </para> > </listitem> > </varlistentry> > *************** PostgreSQL documentation > *** 154,159 **** > --- 155,161 ---- > <listitem> > <para> > Specifies the database user who will own the new database. > + (This name is processed as a double-quoted identifier.) > </para> > </listitem> > </varlistentry> > *************** PostgreSQL documentation > *** 163,169 **** > <term><option>--template=<replaceable class="parameter">template</replaceable></></term> > <listitem> > <para> > ! Specifies the template database from which to build this database. > </para> > </listitem> > </varlistentry> > --- 165,172 ---- > <term><option>--template=<replaceable class="parameter">template</replaceable></></term> > <listitem> > <para> > ! 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 > new file mode 100644 > index f01f298..d28cfb7 > *** a/doc/src/sgml/ref/createlang.sgml > --- b/doc/src/sgml/ref/createlang.sgml > *************** PostgreSQL documentation > *** 70,76 **** > <term><replaceable class="parameter">langname</replaceable></term> > <listitem> > <para> > ! Specifies the name of the procedural language to be installed. > </para> > </listitem> > </varlistentry> > --- 70,77 ---- > <term><replaceable class="parameter">langname</replaceable></term> > <listitem> > <para> > ! 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 > new file mode 100644 > index 04c3a60..e5d02aa > *** a/doc/src/sgml/ref/droplang.sgml > --- b/doc/src/sgml/ref/droplang.sgml > *************** PostgreSQL documentation > *** 73,78 **** > --- 73,79 ---- > <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 > new file mode 100644 > index 9ae8000..5fd6410 > *** a/doc/src/sgml/reference.sgml > --- b/doc/src/sgml/reference.sgml > *************** > *** 198,203 **** > --- 198,211 ---- > 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 — 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 > new file mode 100644 > index f4c317a..3742091 > *** a/src/bin/scripts/clusterdb.c > --- b/src/bin/scripts/clusterdb.c > *************** cluster_one_database(const char *dbname, > *** 177,183 **** > if (verbose) > appendPQExpBuffer(&sql, " VERBOSE"); > if (table) > ! appendPQExpBuffer(&sql, " %s", fmtId(table)); > appendPQExpBuffer(&sql, ";\n"); > > conn = connectDatabase(dbname, host, port, username, prompt_password, progname); > --- 177,183 ---- > if (verbose) > appendPQExpBuffer(&sql, " VERBOSE"); > if (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 > new file mode 100644 > index c2153db..2f667e8 > *** a/src/bin/scripts/createlang.c > --- b/src/bin/scripts/createlang.c > *************** main(int argc, char *argv[]) > *** 164,169 **** > --- 164,170 ---- > 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 > new file mode 100644 > index 7fadee0..f136a76 > *** a/src/bin/scripts/droplang.c > --- b/src/bin/scripts/droplang.c > *************** main(int argc, char *argv[]) > *** 165,170 **** > --- 165,171 ---- > 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 > new file mode 100644 > index 53fff01..caeed75 > *** a/src/bin/scripts/reindexdb.c > --- b/src/bin/scripts/reindexdb.c > *************** reindex_one_database(const char *name, c > *** 223,231 **** > > appendPQExpBuffer(&sql, "REINDEX"); > if (strcmp(type, "TABLE") == 0) > ! appendPQExpBuffer(&sql, " TABLE %s", fmtId(name)); > else if (strcmp(type, "INDEX") == 0) > ! appendPQExpBuffer(&sql, " INDEX %s", fmtId(name)); > else if (strcmp(type, "DATABASE") == 0) > appendPQExpBuffer(&sql, " DATABASE %s", fmtId(name)); > appendPQExpBuffer(&sql, ";\n"); > --- 223,231 ---- > > appendPQExpBuffer(&sql, "REINDEX"); > if (strcmp(type, "TABLE") == 0) > ! appendPQExpBuffer(&sql, " TABLE %s", name); > else if (strcmp(type, "INDEX") == 0) > ! appendPQExpBuffer(&sql, " INDEX %s", name); > else if (strcmp(type, "DATABASE") == 0) > appendPQExpBuffer(&sql, " DATABASE %s", fmtId(name)); > appendPQExpBuffer(&sql, ";\n"); > > -- > Sent via pgsql-docs mailing list (pgsql-docs@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-docs -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. +
pgsql-docs by date: