From 0d5364fd9835302e05be85e3e49c98326013a0f7 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Wed, 26 May 2004 18:24:22 +0000 Subject: [PATCH] Fix problem with doing 7.0.X dumps on character varying[] fields. Christopher Kings-Lynne --- src/bin/pg_dump/pg_dump.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index c178baa472..b95aba5e2f 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -12,7 +12,7 @@ * by PostgreSQL * * IDENTIFICATION - * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.371 2004/05/25 01:00:24 momjian Exp $ + * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.372 2004/05/26 18:24:22 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -7722,8 +7722,16 @@ static char * 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")) { @@ -7767,6 +7775,10 @@ myFormatType(const char *typname, int32 typmod) else appendPQExpBuffer(buf, "%s", fmtId(typname)); + /* Append array qualifier for array types */ + if (isarray) + appendPQExpBuffer(buf, "[]"); + result = strdup(buf->data); destroyPQExpBuffer(buf);