From 0d5364fd9835302e05be85e3e49c98326013a0f7 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
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 c178baa4726..b95aba5e2f7 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);
 
-- 
GitLab