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
  [EMAIL PROTECTED]               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Reply via email to