Skip site navigation (1) Skip section navigation (2)

Re: \d+ should display the storage options for columns

From: Gregory Stark <stark(at)enterprisedb(dot)com>
To: <pgsql-patches(at)postgresql(dot)org>
Cc: "Oleg Bartunov" <oleg(at)sai(dot)msu(dot)su>
Subject: Re: \d+ should display the storage options for columns
Date: 2008-05-21 20:54:48
Message-ID: 878wy3nzs7.fsf@oxford.xeocode.com (view raw or flat)
Thread:
Lists: pgsql-patches
"Gregory Stark" <stark(at)enterprisedb(dot)com> writes:

> Oleg pointed out to me here that while we have a command to *set* the toast
> storage characteristics there's no actual supported way to display the current
> settings.
>
> It seems like this would be a reasonable thing to add to \d+

Sorry, sent the wrong diff before. The previous diff didn't work due to an
array overflow.

Index: src/bin/psql/describe.c
===================================================================
RCS file: /home/stark/src/REPOSITORY/pgsql/src/bin/psql/describe.c,v
retrieving revision 1.170
diff -c -r1.170 describe.c
*** src/bin/psql/describe.c	5 May 2008 01:21:03 -0000	1.170
--- src/bin/psql/describe.c	21 May 2008 20:25:26 -0000
***************
*** 791,797 ****
  	printTableOpt myopt = pset.popt.topt;
  	int			i;
  	char	   *view_def = NULL;
! 	const char *headers[5];
  	char	  **cells = NULL;
  	char	  **footers = NULL;
  	char	  **ptr;
--- 791,797 ----
  	printTableOpt myopt = pset.popt.topt;
  	int			i;
  	char	   *view_def = NULL;
! 	const char *headers[6];
  	char	  **cells = NULL;
  	char	  **footers = NULL;
  	char	  **ptr;
***************
*** 865,871 ****
  
  	if (verbose)
  	{
! 		cols++;
  		headers[cols - 1] = _("Description");
  	}
  
--- 865,872 ----
  
  	if (verbose)
  	{
! 		cols+=2;
! 		headers[cols - 2] = _("Storage");
  		headers[cols - 1] = _("Description");
  	}
  
***************
*** 877,883 ****
  					  "\n  (SELECT substring(pg_catalog.pg_get_expr(d.adbin, d.adrelid) for 128)"
  					  "\n   FROM pg_catalog.pg_attrdef d"
  					  "\n   WHERE d.adrelid = a.attrelid AND d.adnum = a.attnum AND a.atthasdef),"
! 					  "\n  a.attnotnull, a.attnum");
  	if (verbose)
  		appendPQExpBuffer(&buf, ", pg_catalog.col_description(a.attrelid, a.attnum)");
  	appendPQExpBuffer(&buf, "\nFROM pg_catalog.pg_attribute a");
--- 878,884 ----
  					  "\n  (SELECT substring(pg_catalog.pg_get_expr(d.adbin, d.adrelid) for 128)"
  					  "\n   FROM pg_catalog.pg_attrdef d"
  					  "\n   WHERE d.adrelid = a.attrelid AND d.adnum = a.attnum AND a.atthasdef),"
! 					  "\n  a.attnotnull, a.attnum, a.attstorage");
  	if (verbose)
  		appendPQExpBuffer(&buf, ", pg_catalog.col_description(a.attrelid, a.attnum)");
  	appendPQExpBuffer(&buf, "\nFROM pg_catalog.pg_attribute a");
***************
*** 957,967 ****
  
  		/* Description */
  		if (verbose)
  #ifdef WIN32
! 			cells[i * cols + cols - 1] = mbvalidate(PQgetvalue(res, i, 5), myopt.encoding);
  #else
! 			cells[i * cols + cols - 1] = PQgetvalue(res, i, 5);
  #endif
  	}
  
  	/* Make title */
--- 958,978 ----
  
  		/* Description */
  		if (verbose)
+ 		{
+ 			char *storage = PQgetvalue(res, i, 5);
+ 
+ 			cells[i * cols + cols -2] = 
+ 				(storage[0]=='p' ? _("plain") :
+ 				 (storage[0]=='m' ? _("main") :
+ 				  (storage[0]=='x' ? _("extended") :
+ 				   (storage[0]=='e' ? _("external") :
+ 					"???"))));
  #ifdef WIN32
! 			cells[i * cols + cols - 1] = mbvalidate(PQgetvalue(res, i, 6), myopt.encoding);
  #else
! 			cells[i * cols + cols - 1] = PQgetvalue(res, i, 6);
  #endif
+ 		}
  	}
  
  	/* Make title */

-- 
  Gregory Stark
  EnterpriseDB          http://www.enterprisedb.com
  Get trained by Bruce Momjian - ask me about EnterpriseDB's PostgreSQL training!

In response to

Responses

pgsql-patches by date

Next:From: Jaime CasanovaDate: 2008-05-22 18:18:24
Subject: Extending grant insert on tables to sequences
Previous:From: Gregory StarkDate: 2008-05-21 20:30:28
Subject: \d+ should display the storage options for columns

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group