Re: Bug in CVS pg_dump against 7.0.x

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Christopher Kings-Lynne <chriskl(at)familyhealth(dot)com(dot)au>
Cc: PG Patches <pgsql-patches(at)postgresql(dot)org>
Subject: Re: Bug in CVS pg_dump against 7.0.x
Date: 2004-05-26 18:27:28
Message-ID: 200405261827.i4QIRS510542@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-patches


Backpatched to 7.4.X.

---------------------------------------------------------------------------

Christopher Kings-Lynne wrote:
> No, the patch is against 7.5 CVS. It is a tiny fix that allows it to
> dump 7.0.x database backends correctly.
>
> I submitted a fix for 7.5 dumping 7.0 previously and it was accepted :)
>
> Chris
>
> Bruce Momjian wrote:
>
> > Uh, not sure anyone would even see a 7.0.X release if we made it, and I
> > question how many are using varying[]. Your patch is now in the
> > archives, and we can point folks to it if they ask.
> >
> > ---------------------------------------------------------------------------
> >
> > Christopher Kings-Lynne wrote:
> >
> >>Hi,
> >>
> >>I know 7.0.x is pretty old, but I'm wondering if we should fix this to
> >>make it better for people upgrading.
> >>
> >>If you create a table like this in 7.0.x:
> >>
> >>CREATE TABLE address (
> >> first_name character varying(50) DEFAULT 'asdf' NOT NULL,
> >> last_name character varying(50) NOT NULL,
> >> address character varying(50),
> >> tesing character varying[]
> >>);
> >>
> >>The 7.5 pg_dump program will dump it like this:
> >>
> >>CREATE TABLE address (
> >> first_name character varying(50) DEFAULT 'asdf' NOT NULL,
> >> last_name character varying(50) NOT NULL,
> >> address character varying(50),
> >> tesing _varchar
> >>);
> >>
> >>I have attached a patch that should fix it. I haven't been able to
> >>actually test it since my dev machine and the 7.0 machine I have access
> >>to aren't connected - although it does compile. The fix is based on the
> >>7.0 psql code.
> >>
> >>Chris
> >
> >
> >>? src/bin/pg_dump/.deps
> >>? src/bin/pg_dump/common.c.working
> >>? src/bin/pg_dump/pg_dump
> >>? src/bin/pg_dump/pg_dump.c.working
> >>? src/bin/pg_dump/pg_dump.h.working
> >>? src/bin/pg_dump/pg_dumpall
> >>? src/bin/pg_dump/pg_restore
> >>Index: src/bin/pg_dump/pg_dump.c
> >>===================================================================
> >>RCS file: /projects/cvsroot/pgsql-server/src/bin/pg_dump/pg_dump.c,v
> >>retrieving revision 1.370
> >>diff -c -r1.370 pg_dump.c
> >>*** src/bin/pg_dump/pg_dump.c 24 Mar 2004 03:06:08 -0000 1.370
> >>--- src/bin/pg_dump/pg_dump.c 16 May 2004 14:42:55 -0000
> >>***************
> >>*** 7726,7733 ****
> >>--- 7726,7741 ----
> >> myFormatType(const char *typname, int32 typmod)
> >> {
> >> char *result;
> >>+ bool isarray = false;
> >> PQExpBuffer buf = createPQExpBuffer();
> >>
> >>+ /* Handle array types */
> >>+ if (typname[0] == '_')
> >>+ {
> >>+ isarray = true;
> >>+ typname++;
> >>+ }
> >>+
> >> /* Show lengths on bpchar and varchar */
> >> if (!strcmp(typname, "bpchar"))
> >> {
> >>***************
> >>*** 7770,7775 ****
> >>--- 7778,7787 ----
> >> appendPQExpBuffer(buf, "\"char\"");
> >> else
> >> appendPQExpBuffer(buf, "%s", fmtId(typname));
> >>+
> >>+ /* Append array qualifier for array types */
> >>+ if (isarray)
> >>+ appendPQExpBuffer(buf, "[]");
> >>
> >> result = strdup(buf->data);
> >> destroyPQExpBuffer(buf);
> >
> >
> >>---------------------------(end of broadcast)---------------------------
> >>TIP 5: Have you checked our extensive FAQ?
> >>
> >> http://www.postgresql.org/docs/faqs/FAQ.html
> >
> >
>
> ---------------------------(end of broadcast)---------------------------
> TIP 7: don't forget to increase your free space map settings
>

--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073

In response to

Browse pgsql-patches by date

  From Date Subject
Next Message Bruce Momjian 2004-05-26 18:35:09 Re: More network functions...
Previous Message Bruce Momjian 2004-05-26 18:24:20 Re: Bug in CVS pg_dump against 7.0.x