@ -3,7 +3,7 @@
*
* Copyright 2000 by PostgreSQL Global Development Group
*
* $ Header : / cvsroot / pgsql / src / bin / psql / describe . c , v 1.17 2000 / 02 / 16 13 : 15 : 26 momjian Exp $
* $ Header : / cvsroot / pgsql / src / bin / psql / describe . c , v 1.18 2000 / 02 / 26 18 : 31 : 25 tgl Exp $
*/
# include "postgres.h"
# include "describe.h"
@ -631,9 +631,7 @@ describeTableDetails(const char *name, bool desc)
attype + + ;
}
/* (convert some internal type names to SQL'ish) */
if ( strcmp ( attype , " bpchar " ) = = 0 )
typename = " char " ;
else if ( strcmp ( attype , " int2 " ) = = 0 )
if ( strcmp ( attype , " int2 " ) = = 0 )
typename = " smallint " ;
else if ( strcmp ( attype , " int4 " ) = = 0 )
typename = " integer " ;
@ -646,13 +644,26 @@ describeTableDetails(const char *name, bool desc)
/* more might need to be added when date/time types are sorted out */
cells [ i * cols + 1 ] = xmalloc ( NAMEDATALEN + 16 ) ;
if ( strcmp ( typename , " char " ) = = 0 )
sprintf ( cells [ i * cols + 1 ] , " char(%d) " , attypmod ! = - 1 ? attypmod - VARHDRSZ : 1 ) ;
if ( strcmp ( typename , " bpchar " ) = = 0 )
{
if ( attypmod ! = - 1 )
sprintf ( cells [ i * cols + 1 ] , " char(%d) " , attypmod - VARHDRSZ ) ;
else
sprintf ( cells [ i * cols + 1 ] , " char() " ) ;
}
else if ( strcmp ( typename , " varchar " ) = = 0 )
sprintf ( cells [ i * cols + 1 ] , " varchar(%d) " , attypmod ! = - 1 ? attypmod - VARHDRSZ : 1 ) ;
{
if ( attypmod ! = - 1 )
sprintf ( cells [ i * cols + 1 ] , " varchar(%d) " , attypmod - VARHDRSZ ) ;
else
sprintf ( cells [ i * cols + 1 ] , " varchar() " ) ;
}
else if ( strcmp ( typename , " numeric " ) = = 0 )
sprintf ( cells [ i * cols + 1 ] , " numeric(%d,%d) " , ( ( attypmod - VARHDRSZ ) > > 16 ) & 0xffff ,
{
sprintf ( cells [ i * cols + 1 ] , " numeric(%d,%d) " ,
( ( attypmod - VARHDRSZ ) > > 16 ) & 0xffff ,
( attypmod - VARHDRSZ ) & 0xffff ) ;
}
else
strcpy ( cells [ i * cols + 1 ] , typename ) ;