Re: Bug in CVS pg_dump against 7.0.x - Mailing list pgsql-patches

From Christopher Kings-Lynne
Subject Re: Bug in CVS pg_dump against 7.0.x
Date
Msg-id 40A81702.5010002@familyhealth.com.au
Whole thread Raw
In response to Re: Bug in CVS pg_dump against 7.0.x  (Bruce Momjian <pgman@candle.pha.pa.us>)
Responses Re: Bug in CVS pg_dump against 7.0.x
Re: Bug in CVS pg_dump against 7.0.x
Re: Bug in CVS pg_dump against 7.0.x
Re: Bug in CVS pg_dump against 7.0.x
List 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
>
>

pgsql-patches by date:

Previous
From: "Serguei Mokhov"
Date:
Subject: Translation updates for 7.4/7.5: postgres-ru.po.gz
Next
From: Jan Wieck
Date:
Subject: Re: new aggregate functions v1