@ -3632,7 +3632,8 @@ listTables(const char *tabtypes, const char *pattern, bool verbose, bool showSys
PQExpBufferData buf ;
PGresult * res ;
printQueryOpt myopt = pset . popt ;
static const bool translate_columns [ ] = { false , false , true , false , false , false , false } ;
int cols_so_far ;
bool translate_columns [ ] = { false , false , true , false , false , false , false , false } ;
/* If tabtypes is empty, we default to \dtvmsE (but see also command.c) */
if ( ! ( showTables | | showIndexes | | showViews | | showMatViews | | showSeq | | showForeign ) )
@ -3672,14 +3673,39 @@ listTables(const char *tabtypes, const char *pattern, bool verbose, bool showSys
gettext_noop ( " partitioned index " ) ,
gettext_noop ( " Type " ) ,
gettext_noop ( " Owner " ) ) ;
cols_so_far = 4 ;
if ( showIndexes )
{
appendPQExpBuffer ( & buf ,
" , \n c2.relname as \" %s \" " ,
" , \n c2.relname as \" %s \" " ,
gettext_noop ( " Table " ) ) ;
cols_so_far + + ;
}
if ( verbose )
{
/*
* Show whether a relation is permanent , temporary , or unlogged . Like
* describeOneTableDetails ( ) , we consider that persistence emerged in
* v9 .1 , even though related concepts existed before .
*/
if ( pset . sversion > = 90100 )
{
appendPQExpBuffer ( & buf ,
" , \n CASE c.relpersistence WHEN 'p' THEN '%s' WHEN 't' THEN '%s' WHEN 'u' THEN '%s' END as \" %s \" " ,
gettext_noop ( " permanent " ) ,
gettext_noop ( " temporary " ) ,
gettext_noop ( " unlogged " ) ,
gettext_noop ( " Persistence " ) ) ;
translate_columns [ cols_so_far ] = true ;
}
/*
* We don ' t bother to count cols_so_far below here , as there ' s no need
* to ; this might change with future additions to the output columns .
*/
/*
* As of PostgreSQL 9.0 , use pg_table_size ( ) to show a more accurate
* size of a table , including FSM , VM and TOAST tables .