Re: Bug in CVS pg_dump against 7.0.x

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

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

In response to

Responses

Browse pgsql-patches by date

  From Date Subject
Next Message Jan Wieck 2004-05-17 01:54:09 Re: new aggregate functions v1
Previous Message Serguei Mokhov 2004-05-16 20:27:03 Translation updates for 7.4/7.5: postgres-ru.po.gz