Обсуждение: BUG #5765: pg_dump fail to find upper case table name

Поиск
Список
Период
Сортировка

BUG #5765: pg_dump fail to find upper case table name

От
"Cristiano"
Дата:
The following bug has been logged online:

Bug reference:      5765
Logged by:          Cristiano
Email address:      sumariva@gmail.com
PostgreSQL version: 8.4.4
Operating system:   Linux
Description:        pg_dump fail to find upper case table name
Details:

The following command line did not worked.
Using a table with lower case chars( no quoting ) works.
Also happen on pg_dump windows version.
Tested on 8.4.4 and 8.4.3

pg_dump --host www --port 5432 --username postgres --format plain
--column-inserts --verbose --file "streetTypes.sql" --table
public."streetTypes" "geocoding-dev"
Password:
pg_dump: No matching tables were found
pg_dump: *** aborted because of error

Test case: just create an table that need quoting.
CREATE TABLE "Test"() WITH ( OIDS=FALSE );

Call pg_dump to export.

pg_dump --host localhost --port 5432 --username postgres --format plain
--column-inserts --verbose --file "test.sql" --table public."Test" "test-db"

Re: BUG #5765: pg_dump fail to find upper case table name

От
Heikki Linnakangas
Дата:
On 24.11.2010 13:34, Cristiano wrote:
> pg_dump --host www --port 5432 --username postgres --format plain
> --column-inserts --verbose --file "streetTypes.sql" --table
> public."streetTypes" "geocoding-dev"
> Password:
> pg_dump: No matching tables were found
> pg_dump: *** aborted because of error
>
> Test case: just create an table that need quoting.
> CREATE TABLE "Test"() WITH ( OIDS=FALSE );
>
> Call pg_dump to export.
>
> pg_dump --host localhost --port 5432 --username postgres --format plain
> --column-inserts --verbose --file "test.sql" --table public."Test" "test-db"

Manual says (at the bottom of
http://www.postgresql.org/docs/8.4/static/app-pgdump.html):

>  To specify an upper-case or mixed-case name in -t and related switches, you need to double-quote the name; else it
willbe folded to lower case (see Patterns). But double quotes are special to the shell, so in turn they must be quoted.
Thus,to dump a single table with a mixed-case name, you need something like 
>
> $ pg_dump -t '"MixedCaseName"' mydb > mytab.sql

--
   Heikki Linnakangas
   EnterpriseDB   http://www.enterprisedb.com

Re: BUG #5765: pg_dump fail to find upper case table name

От
"Kevin Grittner"
Дата:
Heikki Linnakangas <heikki.linnakangas@enterprisedb.com> wrote:

> Manual says (at the bottom of
> http://www.postgresql.org/docs/8.4/static/app-pgdump.html):
>
>> To specify an upper-case or mixed-case name in -t and related
>> switches, you need to double-quote the name; else it will be
>> folded to lower case (see Patterns). But double quotes are
>> special to the shell, so in turn they must be quoted. Thus, to
>> dump a single table with a mixed-case name, you need something
>> like
>>
>> $ pg_dump -t '"MixedCaseName"' mydb > mytab.sql

Perhaps some of that should be moved up to the definition of the -t
switch?  It wouldn't seem too out of place to me to put it somewhere
near this sentence:

| When using wildcards, be careful to quote the pattern if needed to
| prevent the shell from expanding the wildcards.

While examples are useful, information which is only provided there
is easily missed when someone goes to read up on a particular
switch.

-Kevin

Re: BUG #5765: pg_dump fail to find upper case table name

От
Pavel Golub
Дата:
Hello, Kevin.

You wrote:

KG> Heikki Linnakangas <heikki.linnakangas@enterprisedb.com> wrote:
KG>
>> Manual says (at the bottom of
>> http://www.postgresql.org/docs/8.4/static/app-pgdump.html):
>>
>>> To specify an upper-case or mixed-case name in -t and related
>>> switches, you need to double-quote the name; else it will be
>>> folded to lower case (see Patterns). But double quotes are
>>> special to the shell, so in turn they must be quoted. Thus, to
>>> dump a single table with a mixed-case name, you need something
>>> like
>>>
>>> $ pg_dump -t '"MixedCaseName"' mydb > mytab.sql
KG>
KG> Perhaps some of that should be moved up to the definition of the -t
KG> switch?  It wouldn't seem too out of place to me to put it somewhere
KG> near this sentence:
KG>
KG> | When using wildcards, be careful to quote the pattern if needed to
KG> | prevent the shell from expanding the wildcards.

+100

KG>
KG> While examples are useful, information which is only provided there
KG> is easily missed when someone goes to read up on a particular
KG> switch.
KG>
KG> -Kevin




--
With best wishes,
 Pavel                          mailto:pavel@gf.microolap.com

Re: BUG #5765: pg_dump fail to find upper case table name

От
Bruce Momjian
Дата:
Kevin Grittner wrote:
> Heikki Linnakangas <heikki.linnakangas@enterprisedb.com> wrote:
>
> > Manual says (at the bottom of
> > http://www.postgresql.org/docs/8.4/static/app-pgdump.html):
> >
> >> To specify an upper-case or mixed-case name in -t and related
> >> switches, you need to double-quote the name; else it will be
> >> folded to lower case (see Patterns). But double quotes are
> >> special to the shell, so in turn they must be quoted. Thus, to
> >> dump a single table with a mixed-case name, you need something
> >> like
> >>
> >> $ pg_dump -t '"MixedCaseName"' mydb > mytab.sql
>
> Perhaps some of that should be moved up to the definition of the -t
> switch?  It wouldn't seem too out of place to me to put it somewhere
> near this sentence:
>
> | When using wildcards, be careful to quote the pattern if needed to
> | prevent the shell from expanding the wildcards.
>
> While examples are useful, information which is only provided there
> is easily missed when someone goes to read up on a particular
> switch.

I have applied the attached doc patch to reference the example section
from the specific pg_dump options sections.

--
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + It's impossible for everything to be true. +
diff --git a/doc/src/sgml/ref/pg_dump.sgml b/doc/src/sgml/ref/pg_dump.sgml
new file mode 100644
index 25dc2a7..e78d275
*** a/doc/src/sgml/ref/pg_dump.sgml
--- b/doc/src/sgml/ref/pg_dump.sgml
*************** PostgreSQL documentation
*** 301,307 ****
          linkend="APP-PSQL-patterns" endterm="APP-PSQL-patterns-title">),
          so multiple schemas can also be selected by writing wildcard characters
          in the pattern.  When using wildcards, be careful to quote the pattern
!         if needed to prevent the shell from expanding the wildcards.
         </para>

         <note>
--- 301,308 ----
          linkend="APP-PSQL-patterns" endterm="APP-PSQL-patterns-title">),
          so multiple schemas can also be selected by writing wildcard characters
          in the pattern.  When using wildcards, be careful to quote the pattern
!         if needed to prevent the shell from expanding the wildcards;  see
!         <xref linkend="pg-dump-examples" endterm="pg-dump-examples-title">.
         </para>

         <note>
*************** PostgreSQL documentation
*** 435,441 ****
          linkend="APP-PSQL-patterns" endterm="APP-PSQL-patterns-title">),
          so multiple tables can also be selected by writing wildcard characters
          in the pattern.  When using wildcards, be careful to quote the pattern
!         if needed to prevent the shell from expanding the wildcards.
         </para>

         <para>
--- 436,443 ----
          linkend="APP-PSQL-patterns" endterm="APP-PSQL-patterns-title">),
          so multiple tables can also be selected by writing wildcard characters
          in the pattern.  When using wildcards, be careful to quote the pattern
!         if needed to prevent the shell from expanding the wildcards;  see
!         <xref linkend="pg-dump-examples" endterm="pg-dump-examples-title">.
         </para>

         <para>
*************** CREATE DATABASE foo WITH TEMPLATE templa
*** 973,979 ****
   </refsect1>

   <refsect1 id="pg-dump-examples">
!   <title>Examples</title>

    <para>
     To dump a database called <literal>mydb</> into a SQL-script file:
--- 975,981 ----
   </refsect1>

   <refsect1 id="pg-dump-examples">
!   <title id="pg-dump-examples-title">Examples</title>

    <para>
     To dump a database called <literal>mydb</> into a SQL-script file: