\d+ should display the storage options for columns

Gregory Stark <[email protected]>
Newsgroups gmane.comp.db.postgresql.devel.patches
Message-ID <[email protected]>
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+


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 18:07:13 -0000
***************
*** 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 ****
--- 958,979 ----
  
  		/* Description */
  		if (verbose)
+ 		{
+ 			char *storage = PQgetvalue(res, i, 6);
+ 
+ 			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, 5), myopt.encoding);
  #else
  			cells[i * cols + cols - 1] = PQgetvalue(res, i, 5);
  #endif
+ 		}
  	}
  
  	/* Make title */


-- 
  Gregory Stark
  EnterpriseDB          http://www.enterprisedb.com
  Ask me about EnterpriseDB's On-Demand Production Tuning

-- 
Sent via pgsql-patches mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-patches
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.