mirror of
https://github.com/postgres/postgres.git
synced 2025-04-20 00:42:27 +03:00
This is a patch to pg_dump which fixes varchar and char printing in the
case where the attribute length is variable (stored as -1). Previously, you'd get output that looked like: CREATE TABLE foo (bar varchar(-1)); Monitor and psql don't like this at all :). Here is a fix: Submitted by: Adam Sussman <myddryn@vidya.com>
This commit is contained in:
parent
c13ef1afed
commit
22113f81fd
@ -20,7 +20,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.3 1996/07/22 08:36:59 scrappy Exp $
|
* $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.4 1996/07/27 02:29:51 scrappy Exp $
|
||||||
*
|
*
|
||||||
* Modifications - 6/10/96 - dave@bensoft.com - version 1.13.dhb
|
* Modifications - 6/10/96 - dave@bensoft.com - version 1.13.dhb
|
||||||
*
|
*
|
||||||
@ -35,6 +35,10 @@
|
|||||||
* - Added single. quote to twin single quote expansion for 'insert' string
|
* - Added single. quote to twin single quote expansion for 'insert' string
|
||||||
* mode.
|
* mode.
|
||||||
*
|
*
|
||||||
|
* Modifications - 7/26/96 - asussman@vidya.com
|
||||||
|
*
|
||||||
|
* - Fixed ouput lengths for char and varchar type where the length is variable (-1)
|
||||||
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -1210,19 +1214,29 @@ void dumpTables(FILE* fout, TableInfo *tblinfo, int numTables,
|
|||||||
|
|
||||||
/* Show lengths on bpchar and varchar */
|
/* Show lengths on bpchar and varchar */
|
||||||
if (!strcmp(tblinfo[i].typnames[j],"bpchar")) {
|
if (!strcmp(tblinfo[i].typnames[j],"bpchar")) {
|
||||||
sprintf(q, "%s%s%s char(%d)",
|
sprintf(q, "%s%s%s char",
|
||||||
q,
|
q,
|
||||||
(actual_atts > 0) ? ", " : "",
|
(actual_atts > 0) ? ", " : "",
|
||||||
tblinfo[i].attnames[j],
|
tblinfo[i].attnames[j]);
|
||||||
|
|
||||||
|
/* stored length can be -1 (variable) */
|
||||||
|
if (tblinfo[i].attlen[j] > 0)
|
||||||
|
sprintf(q, "%s(%d)",
|
||||||
|
q,
|
||||||
tblinfo[i].attlen[j]);
|
tblinfo[i].attlen[j]);
|
||||||
actual_atts++;
|
actual_atts++;
|
||||||
}
|
}
|
||||||
else if (!strcmp(tblinfo[i].typnames[j],"varchar")) {
|
else if (!strcmp(tblinfo[i].typnames[j],"varchar")) {
|
||||||
sprintf(q, "%s%s%s %s(%d)",
|
sprintf(q, "%s%s%s %s",
|
||||||
q,
|
q,
|
||||||
(actual_atts > 0) ? ", " : "",
|
(actual_atts > 0) ? ", " : "",
|
||||||
tblinfo[i].attnames[j],
|
tblinfo[i].attnames[j],
|
||||||
tblinfo[i].typnames[j],
|
tblinfo[i].typnames[j]);
|
||||||
|
|
||||||
|
/* stored length can be -1 (variable) */
|
||||||
|
if (tblinfo[i].attlen[j] > 0)
|
||||||
|
sprintf(q, "%s(%d)",
|
||||||
|
q,
|
||||||
tblinfo[i].attlen[j]);
|
tblinfo[i].attlen[j]);
|
||||||
actual_atts++;
|
actual_atts++;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user