pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Craig Ringer <craig@postnewspapers.com.au>
To: manuel antonio ochoa <manuel8aalfaro@gmail.com>
Cc: pgsql-sql@postgresql.org
Subject: Re: Problems Pgdump
Date: Wed, 25 May 2011 10:07:08 +0800
Message-ID: <4DDC644C.4050800@postnewspapers.com.au> (raw)
In-Reply-To: <BANLkTinUmWSLhgKaf_oYGQ_GGZ8_ofRFDA@mail.gmail.com>
References: <BANLkTik9o0BN1-YoMh4b2KvDEkyo1kZqFA@mail.gmail.com>
	<BANLkTinUmWSLhgKaf_oYGQ_GGZ8_ofRFDA@mail.gmail.com>

On 25/05/11 03:26, manuel antonio ochoa wrote:
> sorry  I cound finish my problem.
> 
> I trying to get the next one :
> 
> pg_dump -h 192.170.1.3 -U  User --format custom --inserts --verbose
> --file \"/root/Desktop/$name .backup\" --table "$ESQUEMA.$Nametable" DB"
> 
> my Name table is  detalle_Inegra , and the problem is that it table
> alwals sent me a message like i COULD NOT FIND THE NAME  OF TABLE but
> the table exist and

It's almost certainly a case-folding issue. It'd help if you posted the
output of:

  \d

in the database of interest.

At a guess, what's happening is that you have a mixed-case table name.
Let's say it's called "Fred". You're trying to run:

  pg_dump --table "Fred" dbname

The shell consumes the double-quotes during argument processing, so what
pg_dump actually sees is three arguments:

  --table
  Fred
  dbname

Because of case-folding rules, table names that are not double-quoted
are folded to lower-case. This means that the table names:

  Fred
  FRED
  fred
  FrEd

are all interpreted as meaning the table "fred" (lower case).

If you need to preserve case, you need to protect the double quotes from
consumption by the shell, so you send the argument "Fred" to pg_dump. In
your command line above, you would change

  --table "$ESQUEMA.$Nametable"

to

  --table "\"$ESQUEMA\".\"$Nametable\""

... adding a pair of escaped double-quotes around both the table and
schema names that the shell does NOT consume. The outer double-quotes
need to be retained in case the table or schema names contain shell
meta-characters and/or spaces.

To learn more about postgresql's case folding, see:

http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS

http://sql-info.de/postgresql/postgres-gotchas.html

http://archives.postgresql.org/pgsql-hackers/2004-04/msg00818.php

--
Craig Ringer



view thread (3+ messages)

Message-ID: <4DDC644C.4050800@postnewspapers.com.au>
Permalink:  ../4DDC644C.4050800@postnewspapers.com.au/
Also on:    postgresql.org/message-id/4DDC644C.4050800@postnewspapers.com.au

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: craig@postnewspapers.com.au, manuel8aalfaro@gmail.com
  Subject: Re: Problems Pgdump
  In-Reply-To: <4DDC644C.4050800@postnewspapers.com.au>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox