[ Backpatch to 7.4.X.]

Fix problem with doing 7.0.X dumps on character varying[] fields.

Christopher Kings-Lynne
This commit is contained in:
Bruce Momjian 2004-05-26 18:27:23 +00:00
parent 360dcb1341
commit c924c065cd

View File

@ -12,7 +12,7 @@
* by PostgreSQL * by PostgreSQL
* *
* IDENTIFICATION * 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) myFormatType(const char *typname, int32 typmod)
{ {
char *result; char *result;
bool isarray = false;
PQExpBuffer buf = createPQExpBuffer(); PQExpBuffer buf = createPQExpBuffer();
/* Handle array types */
if (typname[0] == '_')
{
isarray = true;
typname++;
}
/* Show lengths on bpchar and varchar */ /* Show lengths on bpchar and varchar */
if (!strcmp(typname, "bpchar")) if (!strcmp(typname, "bpchar"))
{ {
@ -6863,6 +6871,10 @@ myFormatType(const char *typname, int32 typmod)
else else
appendPQExpBuffer(buf, "%s", fmtId(typname)); appendPQExpBuffer(buf, "%s", fmtId(typname));
/* Append array qualifier for array types */
if (isarray)
appendPQExpBuffer(buf, "[]");
result = strdup(buf->data); result = strdup(buf->data);
destroyPQExpBuffer(buf); destroyPQExpBuffer(buf);