Fix problem with doing 7.0.X dumps on character varying[] fields.
authorBruce Momjian <bruce@momjian.us>
Wed, 26 May 2004 18:24:22 +0000 (18:24 +0000)
committerBruce Momjian <bruce@momjian.us>
Wed, 26 May 2004 18:24:22 +0000 (18:24 +0000)
Christopher Kings-Lynne

src/bin/pg_dump/pg_dump.c

index c178baa472628aed37f6536c80d47bd58a8f2e2c..b95aba5e2f7385743f76ac2f3b8c0adc98c3c2c9 100644 (file)
@@ -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);