Hi,

I think I found a bug in pg_dump:
I created a table like:

CREATE TABLE ut (
        Azienda                CHAR(16)    NOT NULL,
        ragione_sociale     VARCHAR(45) NOT NULL,
        indirizzo                CHAR(40),
        inizio_attivita         DATE DEFAULT CURRENT_DATE,
        fine_attivita           DATE
        );

and pg_dump modify the structure table as:

\connect - postgres
CREATE TABLE "ut" (
        "azienda" character(16) NOT NULL,
        "ragione_sociale" character varying(45) NOT NULL,
        "indirizzo" character(40),
        "inizio_attivita" date DEFAULT date( 'current'::datetime + '0
sec') NOT NULL,
        "fine_attivita" date);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

If I try to recreate the table I have this:
ERROR:  parser: parse error at or near "'"

Any ideas ?

Josï¿½



Fri, 19 Nov 1999 12:32:04 +0100
jose soares <jose@sferacarta.com>
pg_dump bug
I confirm this bug for 6.5.3, Linux

	Oleg

On Fri, 19 Nov 1999, jose soares wrote:

> Date: Fri, 19 Nov 1999 12:32:04 +0100
> From: jose soares <jose@sferacarta.com>
> To: hackers <pgsql-hackers@postgreSQL.org>
> Subject: [HACKERS] pg_dump bug
> 
> Hi,
> 
> I think I found a bug in pg_dump:
> I created a table like:
> 
> CREATE TABLE ut (
>         Azienda                CHAR(16)    NOT NULL,
>         ragione_sociale     VARCHAR(45) NOT NULL,
>         indirizzo                CHAR(40),
>         inizio_attivita         DATE DEFAULT CURRENT_DATE,
>         fine_attivita           DATE
>         );
> 
> and pg_dump modify the structure table as:
> 
> \connect - postgres
> CREATE TABLE "ut" (
>         "azienda" character(16) NOT NULL,
>         "ragione_sociale" character varying(45) NOT NULL,
>         "indirizzo" character(40),
>         "inizio_attivita" date DEFAULT date( 'current'::datetime + '0
> sec') NOT NULL,
>         "fine_attivita" date);
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 
> If I try to recreate the table I have this:
> ERROR:  parser: parse error at or near "'"
> 
> Any ideas ?
> 
> JosО©╫
> 
> 
> 
> ************
> 

_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83


Fri, 19 Nov 1999 15:30:14 +0300 (MSK)
Oleg Bartunov <oleg@sai.msu.su>
Re: [HACKERS] pg_dump bug
[Charset iso-8859-1 unsupported, filtering to ASCII...]
> Hi,
> 
> I think I found a bug in pg_dump:
> I created a table like:
> 
> CREATE TABLE ut (
>         Azienda                CHAR(16)    NOT NULL,
>         ragione_sociale     VARCHAR(45) NOT NULL,
>         indirizzo                CHAR(40),
>         inizio_attivita         DATE DEFAULT CURRENT_DATE,
>         fine_attivita           DATE
>         );
> 
> and pg_dump modify the structure table as:
> 
> \connect - postgres
> CREATE TABLE "ut" (
>         "azienda" character(16) NOT NULL,
>         "ragione_sociale" character varying(45) NOT NULL,
>         "indirizzo" character(40),
>         "inizio_attivita" date DEFAULT date( 'current'::datetime + '0
> sec') NOT NULL,
>         "fine_attivita" date);
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Strange, but the query looks fine, and creates fine here in the current
sources.  We had a quoting bug in defaults at some point.  What version
are you using?

-- 
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Fri, 19 Nov 1999 07:35:14 -0500 (EST)
Bruce Momjian <pgman@candle.pha.pa.us>
Re: [HACKERS] pg_dump bugu
jose soares <jose@sferacarta.com> writes:
> I think I found a bug in pg_dump:

It's not pg_dump's fault; it's just putting out what's in the system
tables, and "date( 'current'::datetime + '0 sec')" is how the 6.5.*
parser translates DEFAULT CURRENT_DATE.  (Which is inconsistent with
how it translates CURRENT_DATE in other contexts, but nevermind.)

The failure actually comes up because the 6.5.* parser can't cope with
"x::y"-style typecasts in default expressions; it translates them to
a syntactically invalid string.  CAST ... AS doesn't work either, BTW.

I have ripped out and rewritten all of that cruft for 7.0, which is why
it works now (more or less).  I dunno if it's worth trying to patch
around this particular bug in the default-handling code in 6.5.*.
It's got so many others :-(

Current sources still have a problem with this example, which is that
the default expression gets prematurely constant-folded:
	CREATE TABLE ut (d1 DATE DEFAULT CURRENT_DATE);
pg_dumps as
	CREATE TABLE "ut" (
	        "d1" date DEFAULT '11-19-1999'::date);
Drat.  I thought I'd taken care of that class of problems...

			regards, tom lane

Fri, 19 Nov 1999 10:07:44 -0500
Tom Lane <tgl@sss.pgh.pa.us>
Re: [HACKERS] pg_dump bug 
> I confirm this bug for 6.5.3, Linux

Hmm. I'm running a more-or-less current development tree, and don't
see a problem (on Linux also). Does someone want to track it down??

Although Jose may have marked the line causing a problem, perhaps
someone can more explicitly identify the offending syntax?

                  - Thomas

> > I think I found a bug in pg_dump:
> > CREATE TABLE "ut" (
> >         "azienda" character(16) NOT NULL,
> >         "ragione_sociale" character varying(45) NOT NULL,
> >         "indirizzo" character(40),
> >         "inizio_attivita" date DEFAULT date( 'current'::datetime + '0
> > sec') NOT NULL,
> >         "fine_attivita" date);
> > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > If I try to recreate the table I have this:
> > ERROR:  parser: parse error at or near "'"

-- 
Thomas Lockhart				lockhart@alumni.caltech.edu
South Pasadena, California

Fri, 19 Nov 1999 15:24:52 +0000
Thomas Lockhart <lockhart@alumni.caltech.edu>
Re: [HACKERS] pg_dump bug
[Charset koi8-r unsupported, filtering to ASCII...]
> I confirm this bug for 6.5.3, Linux

OK, seems like it is only 6.5.* tree and not development tree, which
means development has a fix that was too risky for 6.5.*.  Seems user
will have to wait for 7.0.

> 
> 	Oleg
> 
> On Fri, 19 Nov 1999, jose soares wrote:
> 
> > Date: Fri, 19 Nov 1999 12:32:04 +0100
> > From: jose soares <jose@sferacarta.com>
> > To: hackers <pgsql-hackers@postgreSQL.org>
> > Subject: [HACKERS] pg_dump bug
> > 
> > Hi,
> > 
> > I think I found a bug in pg_dump:
> > I created a table like:
> > 
> > CREATE TABLE ut (
> >         Azienda                CHAR(16)    NOT NULL,
> >         ragione_sociale     VARCHAR(45) NOT NULL,
> >         indirizzo                CHAR(40),
> >         inizio_attivita         DATE DEFAULT CURRENT_DATE,
> >         fine_attivita           DATE
> >         );
> > 
> > and pg_dump modify the structure table as:
> > 
> > \connect - postgres
> > CREATE TABLE "ut" (
> >         "azienda" character(16) NOT NULL,
> >         "ragione_sociale" character varying(45) NOT NULL,
> >         "indirizzo" character(40),
> >         "inizio_attivita" date DEFAULT date( 'current'::datetime + '0
> > sec') NOT NULL,
> >         "fine_attivita" date);
> > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > 
> > If I try to recreate the table I have this:
> > ERROR:  parser: parse error at or near "'"
> > 
> > Any ideas ?
> > 
> > Jos_
> > 
> > 
> > 
> > ************
> > 
> 
> _____________________________________________________________
> Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
> Sternberg Astronomical Institute, Moscow University (Russia)
> Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
> phone: +007(095)939-16-83, +007(095)939-23-83
> 
> 
> ************
> 


-- 
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Fri, 19 Nov 1999 10:55:02 -0500 (EST)
Bruce Momjian <pgman@candle.pha.pa.us>
Re: [HACKERS] pg_dump bug
I wrote:
> Current sources still have a problem with this example, which is that
> the default expression gets prematurely constant-folded:
> 	CREATE TABLE ut (d1 DATE DEFAULT CURRENT_DATE);
> pg_dumps as
> 	CREATE TABLE "ut" (
> 	        "d1" date DEFAULT '11-19-1999'::date);
> Drat.  I thought I'd taken care of that class of problems...

Fixed in CVS.

			regards, tom lane

Sat, 20 Nov 1999 16:44:52 -0500
Tom Lane <tgl@sss.pgh.pa.us>
Re: [HACKERS] pg_dump bug 