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-16 19:53:38
Message-ID: 200405161953.i4GJrcE16589@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-patches


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

--
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

Responses

Browse pgsql-patches by date

  From Date Subject
Next Message Serguei Mokhov 2004-05-16 20:27:03 Translation updates for 7.4/7.5: postgres-ru.po.gz
Previous Message Bruce Momjian 2004-05-16 19:36:50 Re: pg_ctl patch to integrate apache's rotatelogs