summaryrefslogtreecommitdiff
path: root/src/bin
diff options
context:
space:
mode:
authorBruce Momjian2004-05-26 18:27:23 +0000
committerBruce Momjian2004-05-26 18:27:23 +0000
commitc924c065cddc0ccead4a32605cea56dfe03db5e6 (patch)
tree2ad954fd6e47a3feade870b94ee5b89ac02f3464 /src/bin
parent360dcb13413103328e6b0f519561c3a7eff9a232 (diff)
[ Backpatch to 7.4.X.]
Fix problem with doing 7.0.X dumps on character varying[] fields. Christopher Kings-Lynne
Diffstat (limited to 'src/bin')
-rw-r--r--src/bin/pg_dump/pg_dump.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index 1ebe39a25b4..ede8ad7c3a6 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -12,7 +12,7 @@
* by PostgreSQL
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.355.2.4 2004/03/02 21:14:59 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.355.2.5 2004/05/26 18:27:23 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -6818,8 +6818,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"))
{
@@ -6863,6 +6871,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);