Thread: pg_dump/psql < db.out issue

pg_dump/psql < db.out issue

From
Michael Davis
Date:
I have several tables with text fields that contain single quotes (').
 Pg_dump exports these tables and the single quotes (') okay.  Psql,
however, will not import the data into the tables because of the single
quote (') in one of the columns in one of the records.  Any idea how to
work around this other than using the -d/-D option in pg_dump?  I like the
-d option in pg_dump, however, importing the data via pgsql is much slower
with this option.

Thanks in advance, Michael Davis



Re: pg_dump/psql < db.out issue

From
"Anthony E . Greene"
Date:
On Tue, 02 Jan 2001 04:46:27 Michael Davis wrote:
>I have several tables with text fields that contain single quotes (').
> Pg_dump exports these tables and the single quotes (') okay.  Psql,
>however, will not import the data into the tables because of the single
>quote (') in one of the columns in one of the records.  Any idea how to
>work around this other than using the -d/-D option in pg_dump?  I like the
>-d option in pg_dump, however, importing the data via pgsql is much slower
>with this option.

I used the -D option and pgsql had no problem re-importing data that
contained single quotes. It seemed to me that it should have failed because
the quotes were not escaped, but it worked anyway.

You could try copying the data out to a file, dumping just the schema, then
doing the reverse to rebuild the database. The data would be tab-delimited
and the quotes would not be an issue.

Tony
--
Anthony E. Greene <agreene@pobox.com> <http://www.pobox.com/~agreene/>
PGP Key: 0x6C94239D/7B3D BD7D 7D91 1B44 BA26  C484 A42A 60DD 6C94 239D
Chat:  AOL/Yahoo: TonyG05    ICQ: 91183266
Linux. The choice of a GNU Generation. <http://www.linux.org/>

Re: pg_dump/psql < db.out issue

From
Tom Lane
Date:
Michael Davis <mdavis@sevainc.com> writes:
> I have several tables with text fields that contain single quotes (').
>  Pg_dump exports these tables and the single quotes (') okay.  Psql,
> however, will not import the data into the tables because of the single
> quote (') in one of the columns in one of the records.

Huh?  That's worked just fine for a long time.  What version are you
running?

play=> select * from foo;
    f1
----------
 I'm here
(1 row)

play=> \q
$ pg_dump  -t foo play >quote.sql
$ cat quote.sql
\connect - tgl
CREATE TABLE "foo" (
        "f1" text
);
COPY "foo" FROM stdin;
I'm here
\.
$ psql play
Welcome ...
play=> drop table foo;
DROP
play=> \i quote.sql
You are now connected as new user tgl.
CREATE
play=> select * from foo;
    f1
----------
 I'm here
(1 row)

play=>

            regards, tom lane