Re: Bug in CVS pg_dump against 7.0.x
От | Bruce Momjian |
---|---|
Тема | Re: Bug in CVS pg_dump against 7.0.x |
Дата | |
Msg-id | 200405161953.i4GJrcE16589@candle.pha.pa.us обсуждение исходный текст |
Ответ на | Bug in CVS pg_dump against 7.0.x (Christopher Kings-Lynne <chriskl@familyhealth.com.au>) |
Ответы |
Re: Bug in CVS pg_dump against 7.0.x
(Christopher Kings-Lynne <chriskl@familyhealth.com.au>)
|
Список | 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@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073
В списке pgsql-patches по дате отправления: