[PATCHES] TODO item: remove postmaster -o option

2006-03-05 Thread Markus Bertheau
Hi,

attached is a patch against HEAD that removes the postmaster's -o
option. It passes make check on i386 Ubuntu 5.10. I sent an e-mail
earlier today asking about the status of this TODO item to -hackers.
No answers so far :)

Markus Bertheau
? GNUmakefile
? config.log
? config.status
? contrib/spi/.deps
? doc/src/sgml/ref/.postgres-ref.sgml.swp
? src/Makefile.global
? src/backend/postgres
? src/backend/access/common/.deps
? src/backend/access/gist/.deps
? src/backend/access/hash/.deps
? src/backend/access/heap/.deps
? src/backend/access/index/.deps
? src/backend/access/nbtree/.deps
? src/backend/access/transam/.deps
? src/backend/bootstrap/.deps
? src/backend/catalog/.deps
? src/backend/catalog/postgres.bki
? src/backend/catalog/postgres.description
? src/backend/catalog/postgres.shdescription
? src/backend/commands/.deps
? src/backend/executor/.deps
? src/backend/lib/.deps
? src/backend/libpq/.deps
? src/backend/main/.deps
? src/backend/nodes/.deps
? src/backend/optimizer/geqo/.deps
? src/backend/optimizer/path/.deps
? src/backend/optimizer/plan/.deps
? src/backend/optimizer/prep/.deps
? src/backend/optimizer/util/.deps
? src/backend/parser/.deps
? src/backend/port/.deps
? src/backend/postmaster/.deps
? src/backend/postmaster/.postmaster.c.swp
? src/backend/regex/.deps
? src/backend/rewrite/.deps
? src/backend/storage/buffer/.deps
? src/backend/storage/file/.deps
? src/backend/storage/freespace/.deps
? src/backend/storage/ipc/.deps
? src/backend/storage/large_object/.deps
? src/backend/storage/lmgr/.deps
? src/backend/storage/page/.deps
? src/backend/storage/smgr/.deps
? src/backend/tcop/.deps
? src/backend/utils/.deps
? src/backend/utils/adt/.deps
? src/backend/utils/cache/.deps
? src/backend/utils/error/.deps
? src/backend/utils/fmgr/.deps
? src/backend/utils/hash/.deps
? src/backend/utils/init/.deps
? src/backend/utils/mb/.deps
? src/backend/utils/mb/conversion_procs/conversion_create.sql
? src/backend/utils/mb/conversion_procs/ascii_and_mic/.deps
? src/backend/utils/mb/conversion_procs/ascii_and_mic/libascii_and_mic.so.0.0
? src/backend/utils/mb/conversion_procs/cyrillic_and_mic/.deps
? src/backend/utils/mb/conversion_procs/cyrillic_and_mic/libcyrillic_and_mic.so.0.0
? src/backend/utils/mb/conversion_procs/euc_cn_and_mic/.deps
? src/backend/utils/mb/conversion_procs/euc_cn_and_mic/libeuc_cn_and_mic.so.0.0
? src/backend/utils/mb/conversion_procs/euc_jp_and_sjis/.deps
? src/backend/utils/mb/conversion_procs/euc_jp_and_sjis/libeuc_jp_and_sjis.so.0.0
? src/backend/utils/mb/conversion_procs/euc_kr_and_mic/.deps
? src/backend/utils/mb/conversion_procs/euc_kr_and_mic/libeuc_kr_and_mic.so.0.0
? src/backend/utils/mb/conversion_procs/euc_tw_and_big5/.deps
? src/backend/utils/mb/conversion_procs/euc_tw_and_big5/libeuc_tw_and_big5.so.0.0
? src/backend/utils/mb/conversion_procs/latin2_and_win1250/.deps
? src/backend/utils/mb/conversion_procs/latin2_and_win1250/liblatin2_and_win1250.so.0.0
? src/backend/utils/mb/conversion_procs/latin_and_mic/.deps
? src/backend/utils/mb/conversion_procs/latin_and_mic/liblatin_and_mic.so.0.0
? src/backend/utils/mb/conversion_procs/utf8_and_ascii/.deps
? src/backend/utils/mb/conversion_procs/utf8_and_ascii/libutf8_and_ascii.so.0.0
? src/backend/utils/mb/conversion_procs/utf8_and_big5/.deps
? src/backend/utils/mb/conversion_procs/utf8_and_big5/libutf8_and_big5.so.0.0
? src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/.deps
? src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/libutf8_and_cyrillic.so.0.0
? src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/.deps
? src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/libutf8_and_euc_cn.so.0.0
? src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/.deps
? src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/libutf8_and_euc_jp.so.0.0
? src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/.deps
? src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/libutf8_and_euc_kr.so.0.0
? src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/.deps
? src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/libutf8_and_euc_tw.so.0.0
? src/backend/utils/mb/conversion_procs/utf8_and_gb18030/.deps
? src/backend/utils/mb/conversion_procs/utf8_and_gb18030/libutf8_and_gb18030.so.0.0
? src/backend/utils/mb/conversion_procs/utf8_and_gbk/.deps
? src/backend/utils/mb/conversion_procs/utf8_and_gbk/libutf8_and_gbk.so.0.0
? src/backend/utils/mb/conversion_procs/utf8_and_iso8859/.deps
? src/backend/utils/mb/conversion_procs/utf8_and_iso8859/libutf8_and_iso8859.so.0.0
? src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/.deps
? src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/libutf8_and_iso8859_1.so.0.0
? src/backend/utils/mb/conversion_procs/utf8_and_johab/.deps
? src/backend/utils/mb/conversion_procs/utf8_and_johab/libutf8_and_johab.so.0.0
? src/backend/utils/mb/conversion_procs/utf8_and_sjis/.deps
? src/backend/utils/mb/conversion_procs/utf8_and_sjis/libutf8_and_sjis.so.0.0
? src/backend/utils/mb/conversion_procs/utf8_and_uhc

Re: [PATCHES] TODO item: remove postmaster -o option

2006-03-05 Thread Markus Bertheau
[Apologies to Bruce for the double send]

2006/3/5, Bruce Momjian pgman@candle.pha.pa.us:

 I not gotten to reply to your earlier email.  Removal of -o requires
 that all the postgres flags be supported by the postmaster.  I think
 Peter Eisentraut is working on a patch to merge the two binaries and the
 conflicting options.

The docs say

The use of this option is obsolete; all command-line options
for server processes can be specified directly on the
postmaster command line

Markus Bertheau

---(end of broadcast)---
TIP 4: Have you searched our list archives?

   http://archives.postgresql.org


Re: [PATCHES] is it a bug ?

2005-03-04 Thread Markus Bertheau
 , 2005-03-03  04:38 -0500, Tom Lane :
 Zouari Fourat [EMAIL PROTECTED] writes:
  here's what logs contain :
  ATTENTION:  Laisse de ct les caractres UTF-8 inconvertibles 0xc389
  ATTENTION:  Laisse de ct les caractres UTF-8 inconvertibles 0xf474e9
  ATTENTION:  Laisse de ct les caractres UTF-8 inconvertibles 0xf474e9
  ATTENTION:  Laisse de ct les caractres UTF-8 inconvertibles 0xf474e9
  ATTENTION:  Laisse de ct les caractres UTF-8 inconvertibles 0xf474e9
  PANIQUE:  ERRORDATA_STACK_SIZE exceeded
 
 [ been expecting someone who knows more than me to step forward, but
 ... ]  What I think is happening here is that PG is expecting the
 translated messages in your .po files to have the same encoding as
 your database encoding, but they aren't.  Can you convert the .po
 files to match your preferred encoding?

Usually gettext handles this for you. And in fact, postgres.mo for
russian is encoded in KOI8-R and messages from the server are displayed
correctly UTF-8 database sessions under a UTF-8 locale.

Markus

-- 
Markus Bertheau [EMAIL PROTECTED]


signature.asc
Description: =?koi8-u?Q?=E3=C0?= =?koi8-u?Q?_=DE=C1=D3=D4=C9=CE=D5?=	=?koi8-u?Q?_=D0=CF=D7=A6=C4=CF=CD=CC=C5=CE=CE?= =?koi8-u?Q?=D1?=	=?koi8-u?Q?_=D0=A6=C4=D0=C9=D3=C1=CE=CF?=	=?koi8-u?Q?_=C3=C9=C6=D2=CF=D7=C9=CD?=	=?koi8-u?Q?_=D0=A6=C4=D0=C9=D3=CF=CD?=


Re: [PATCHES] [HACKERS] UTF8 or Unicode

2005-03-02 Thread Markus Bertheau
 , 26/02/2005  15:50 -0500, Bruce Momjian :

 Other than that the other conversion files were already named fine, e.g.
 ascii_to_utf_8 (no UNICODE), however it is utf_8 and not utf8.  I am
 unsure how to handle these.

General remark about the spelling of this encoding:

The correct encoding name is UTF-8.

The official name and spelling of this encoding is UTF-8, where UTF
stands for UCS Transformation Format. Please do not write UTF-8 in any
documentation text in other ways (such as utf8 or UTF_8), unless of
course you refer to a variable name and not the encoding itself.

from

http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8

Thanks

-- 
Markus Bertheau  [EMAIL PROTECTED]


---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
(send unregister YourEmailAddressHere to [EMAIL PROTECTED])


Re: [PATCHES] Preliminary patch for on-the-fly relpages/reltuples

2004-12-06 Thread Markus Bertheau
 , 29/11/2004  19:14 -0500, Tom Lane :
 + /*
 +  * lazy_update_relstats - update pg_class statistics for a table or index
 +  *
 +  * We always want to set relpages to an accurate value.  However, for lazy
 +  * VACUUM it seems best to set reltuples to the average of the number of
 +  * rows before vacuuming and the number after vacuuming, rather than just
 +  * using the number after vacuuming.  This will result in the best average
 +  * performance in a steady-state situation where VACUUMs are performed
 +  * regularly on a table of roughly constant size, assuming that the physical
 +  * number of pages in the table stays about the same throughout.  (Note that
 +  * we do not apply the same logic to VACUUM FULL, because it repacks the 
 table
 +  * and thereby boosts the tuple density.)
 +  */
 + static void
 + lazy_update_relstats(Relation rel, BlockNumber num_pages,
 +  double num_tuples, double 
 tuples_removed,
 +  bool hasindex)
 + {
 + num_tuples = ceil(num_tuples + tuples_removed * 0.5);

Not understanding a thing about the PG source code, and judging from the
variable names, wouldn't you want ceil(num_tuples + (num_tuples -
tuples_removed) * 0.5) instead?

 + vac_update_relstats(RelationGetRelid(rel), num_pages, num_tuples,
 + hasindex);
   }

-- 
Markus Bertheau [EMAIL PROTECTED]


---(end of broadcast)---
TIP 6: Have you searched our list archives?

   http://archives.postgresql.org


Re: [PATCHES] contrib/xml2: add function xml_encode_special_chars

2004-11-06 Thread Markus Bertheau
 , 06.11.2004,  23:13, Simon Riggs :
 On Sat, 2004-11-06 at 00:36, Markus Bertheau wrote:
   , 06.11.2004,  01:24, Peter Eisentraut :
   Markus Bertheau wrote:
attached is a patch that adds the function xml_encode_special_chars
to the xml2 contrib module. It's against 8.0beta4. It's intended for
commit.
   
   Would you also tell us what this function does?
  
  It calls the similarly named function from libxml2. It replaces
  characters that carry a special meaning in XML (, , ,  and \r) with
  their respective XML entities.
 
 Wow! Hadn't noticed xml2 didn't do that. Thats pretty important...

What do you mean, it didn't do that? Where had you expected it to do
that?

-- 
Markus Bertheau [EMAIL PROTECTED]


---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?

   http://www.postgresql.org/docs/faqs/FAQ.html


Re: [PATCHES] contrib/xml2: add function xml_encode_special_chars

2004-11-06 Thread Markus Bertheau
 , 07.11.2004,  00:55, Peter Eisentraut :
 Markus Bertheau wrote:
  It calls the similarly named function from libxml2. It replaces
  characters that carry a special meaning in XML (, , ,  and \r)
  with their respective XML entities.
 
 Where does this fit with the overall scheme of things?  I mean, you 
 clearly wouldn't call that function on an XML document.

I need this function when I create an XML representation of some data in
a plpgsql function.

-- 
Markus Bertheau [EMAIL PROTECTED]


---(end of broadcast)---
TIP 6: Have you searched our list archives?

   http://archives.postgresql.org


[PATCHES] contrib/xml2: add function xml_encode_special_chars

2004-11-05 Thread Markus Bertheau
Hi,

attached is a patch that adds the function xml_encode_special_chars to
the xml2 contrib module. It's against 8.0beta4. It's intended for
commit.

I would have CC'ed the author, John Gray, but I was unable to find his
email address.

-- 
Markus Bertheau [EMAIL PROTECTED]
  postgresql-8.0.0beta4/: config.log
  postgresql-8.0.0beta4/: config.status
  postgresql-8.0.0beta4/contrib/xml2: libpgxml.a
  postgresql-8.0.0beta4/contrib/xml2: libpgxml.so
  postgresql-8.0.0beta4/contrib/xml2: libpgxml.so.0
  postgresql-8.0.0beta4/contrib/xml2: libpgxml.so.0.0
  postgresql-8.0.0beta4/contrib/xml2: pgxml.sql
diff -cr postgresql-8.0.0beta4.orig/contrib/xml2/pgxml.sql.in postgresql-8.0.0beta4/contrib/xml2/pgxml.sql.in
*** postgresql-8.0.0beta4.orig/contrib/xml2/pgxml.sql.in	2004-03-07 21:41:27.0 +0100
--- postgresql-8.0.0beta4/contrib/xml2/pgxml.sql.in	2004-11-05 12:20:42.608943509 +0100
***
*** 3,8 
--- 3,11 
  CREATE OR REPLACE FUNCTION xml_valid(text) RETURNS bool
  	AS 'MODULE_PATHNAME' LANGUAGE 'c' WITH (isStrict);
  
+ CREATE OR REPLACE FUNCTION xml_encode_special_chars(text) RETURNS text
+ 	AS 'MODULE_PATHNAME' LANGUAGE 'c' WITH (isStrict);
+ 
  CREATE OR REPLACE FUNCTION xpath_string(text,text) RETURNS text
  	AS 'MODULE_PATHNAME' LANGUAGE 'c' WITH (isStrict);
  
diff -cr postgresql-8.0.0beta4.orig/contrib/xml2/xpath.c postgresql-8.0.0beta4/contrib/xml2/xpath.c
*** postgresql-8.0.0beta4.orig/contrib/xml2/xpath.c	2004-10-13 03:26:42.0 +0200
--- postgresql-8.0.0beta4/contrib/xml2/xpath.c	2004-11-05 12:20:13.131025200 +0100
***
*** 40,45 
--- 40,46 
  
  
  Datum		xml_valid(PG_FUNCTION_ARGS);
+ Datum		xml_encode_special_chars(PG_FUNCTION_ARGS);
  Datum		xpath_nodeset(PG_FUNCTION_ARGS);
  Datum		xpath_string(PG_FUNCTION_ARGS);
  Datum		xpath_number(PG_FUNCTION_ARGS);
***
*** 186,191 
--- 187,220 
  }
  
  
+ /* Encodes special characters (, , ,  and \r) as XML entities */
+ 
+ PG_FUNCTION_INFO_V1(xml_encode_special_chars);
+ 
+ Datum
+ xml_encode_special_chars(PG_FUNCTION_ARGS)
+ {
+ 	text *tin = PG_GETARG_TEXT_P(0);
+ 	text *tout;
+ 	int32 ressize;
+ 	xmlChar *ts, *tt;
+ 
+ 	ts = pgxml_texttoxmlchar(tin);
+ 
+ 	tt = xmlEncodeSpecialChars(NULL, ts);
+ 
+ 	pfree(ts);
+ 
+ 	ressize = strlen(tt);
+ 	tout = (text *) palloc(ressize + VARHDRSZ);
+ 	memcpy(VARDATA(tout), tt, ressize);
+ 	VARATT_SIZEP(tout) = ressize + VARHDRSZ;
+ 
+ 	xmlFree(tt);
+ 
+ 	PG_RETURN_TEXT_P(tout);
+ }
+ 
  static xmlChar
  *
  pgxmlNodeSetToText(xmlNodeSetPtr nodeset,
  postgresql-8.0.0beta4/contrib/xml2: xpath.o
  postgresql-8.0.0beta4/contrib/xml2: xslt_proc.o
  postgresql-8.0.0beta4/: GNUmakefile
  postgresql-8.0.0beta4/src/backend/port: dynloader.c
  postgresql-8.0.0beta4/src/backend/port: pg_sema.c
  postgresql-8.0.0beta4/src/backend/port: pg_shmem.c
  postgresql-8.0.0beta4/src/backend/port: tas.s
  postgresql-8.0.0beta4/src/include: dynloader.h
  postgresql-8.0.0beta4/src/include: pg_config.h
  postgresql-8.0.0beta4/src/include: pg_config_os.h
  postgresql-8.0.0beta4/src/include: stamp-h
  postgresql-8.0.0beta4/src: Makefile.global
  postgresql-8.0.0beta4/src: Makefile.port

---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?

   http://www.postgresql.org/docs/faqs/FAQ.html


Re: [PATCHES] contrib/xml2: add function xml_encode_special_chars

2004-11-05 Thread Markus Bertheau
 , 06.11.2004,  01:24, Peter Eisentraut :
 Markus Bertheau wrote:
  attached is a patch that adds the function xml_encode_special_chars
  to the xml2 contrib module. It's against 8.0beta4. It's intended for
  commit.
 
 Would you also tell us what this function does?

It calls the similarly named function from libxml2. It replaces
characters that carry a special meaning in XML (, , ,  and \r) with
their respective XML entities.

-- 
Markus Bertheau [EMAIL PROTECTED]


---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]


Re: [PATCHES] [SQL] array_in: '{}}'::text[]

2004-08-28 Thread Markus Bertheau
 , 28.08.2004,  21:33, Joe Conway :

   /* special case for an empty array */
 ! if (strcmp(str, {}) == 0)
   return 0;

Without looking at the code in a whole, you accept '{} ' as an empty
array literal, so why is the special case for '{}' needed here? I should
be catched by the code that accepts additional whitespace after the last
closing brace, just that there is no white space:

 + /* only whitespace is allowed after the closing brace */
 + while (*ptr)
 + {
 + if (!isspace(*ptr++))
 + ereport(ERROR,
 + (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
 + errmsg(malformed array literal: \%s\, str)));
 + }
 + 
 + /* special case for an empty array */
 + if (empty_array)
 + return 0;

Here's the second special case for empty arrays.

-- 
Markus Bertheau [EMAIL PROTECTED]


---(end of broadcast)---
TIP 7: don't forget to increase your free space map settings


Re: [PATCHES] First attempt: support for '\dg' in psql

2004-07-07 Thread Markus Bertheau




 , 06.07.2004,  19:09, Andrew Dunstan :

Bruce Momjian said:

 I have moved the mention of the dash higher in the TODO file.


Maybe you could put the dash in a different color (red?) so it stands out
more. Or maybe the whole item could go in a different color if done.


Yes, what about stroke through:

done TODO item




-- 
Markus Bertheau [EMAIL PROTECTED]








Re: [PATCHES] First attempt: support for \dg in psql

2004-07-02 Thread Markus Bertheau
This is already in:

http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/bin/psql/describe.c.diff?r1=texttr1=1.89r2=texttr2=1.90f=h

The - in front of that item on the todo list[1] means that it's already
done. This information probably needs to appear more prominently on the
todo page.

[1] http://developer.postgresql.org/todo.php

Thanks.

-- 
Markus Bertheau [EMAIL PROTECTED]


---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
(send unregister YourEmailAddressHere to [EMAIL PROTECTED])


Re: [PATCHES] Patch for psql startup clarity

2004-01-30 Thread Markus Bertheau
 , 30.01.2004,  23:45, David Fetter :

 \? for help on internal slash (i.e. psql) commands

I think it should be 

\? for help with psql commands

firstly because the adjective internal is really subjective and
secondly because the fact that it's internal in whatever way is
completely unimportant and irrelevant to the user.

-- 
Markus Bertheau [EMAIL PROTECTED]


---(end of broadcast)---
TIP 6: Have you searched our list archives?

   http://archives.postgresql.org


[PATCHES] psql: \dg and groups for \du

2003-11-02 Thread Markus Bertheau
Hi,

attached is a patch that adds display of the groups a user belongs to to
\du and a \dg command to psql. It's against 7.4beta5.

-- 
Markus Bertheau [EMAIL PROTECTED]
diff -ru postgresql-7.4beta5.orig/src/bin/psql/command.c postgresql-7.4beta5/src/bin/psql/command.c
--- postgresql-7.4beta5.orig/src/bin/psql/command.c	2003-10-11 20:04:26.0 +0200
+++ postgresql-7.4beta5/src/bin/psql/command.c	2003-11-02 19:31:27.0 +0100
@@ -363,6 +363,9 @@
 			case 'f':
 success = describeFunctions(pattern, show_verbose);
 break;
+			case 'g':
+success = describeGroups(pattern);
+break;
 			case 'l':
 success = do_lo_list();
 break;
diff -ru postgresql-7.4beta5.orig/src/bin/psql/describe.c postgresql-7.4beta5/src/bin/psql/describe.c
--- postgresql-7.4beta5.orig/src/bin/psql/describe.c	2003-10-17 02:57:04.0 +0200
+++ postgresql-7.4beta5/src/bin/psql/describe.c	2003-11-02 19:38:31.0 +0100
@@ -1272,12 +1272,13 @@
 			   WHEN u.usesuper THEN CAST('%s' AS pg_catalog.text)\n
 		WHEN u.usecreatedb THEN CAST('%s' AS pg_catalog.text)\n
 	 ELSE CAST('' AS pg_catalog.text)\n
-	END AS \%s\\n
+	END AS \%s\,\n
+	ARRAY(SELECT g.groname FROM pg_catalog.pg_group g WHERE u.usesysid = ANY(g.grolist)) as \%s\\n
 	  FROM pg_catalog.pg_user u\n,
 	  _(User name), _(User ID),
 	  _(superuser, create database),
 	  _(superuser), _(create database),
-	  _(Attributes));
+	  _(Attributes), _(Groups));
 
 	processNamePattern(buf, pattern, false, false,
 	   NULL, u.usename, NULL, NULL);
@@ -1300,6 +1301,46 @@
 
 
 /*
+ * \dg
+ *
+ * Describes groups.
+ */
+bool
+describeGroups(const char *pattern)
+{
+	PQExpBufferData buf;
+	PGresult   *res;
+	printQueryOpt myopt = pset.popt;
+
+	initPQExpBuffer(buf);
+
+	printfPQExpBuffer(buf,
+	  SELECT g.groname AS \%s\,\n
+	g.grosysid AS \%s\\n
+	  FROM pg_catalog.pg_group g\n,
+	  _(Group name), _(Group ID));
+
+	processNamePattern(buf, pattern, false, false,
+	   NULL, g.groname, NULL, NULL);
+
+	appendPQExpBuffer(buf, ORDER BY 1;);
+
+	res = PSQLexec(buf.data, false);
+	termPQExpBuffer(buf);
+	if (!res)
+		return false;
+
+	myopt.nullPrint = NULL;
+	myopt.title = _(List of database groups);
+
+	printQuery(res, myopt, pset.queryFout);
+
+	PQclear(res);
+	return true;
+}
+
+
+/*
  * listTables()
  *
  * handler for \d, \dt, etc.
diff -ru postgresql-7.4beta5.orig/src/bin/psql/describe.h postgresql-7.4beta5/src/bin/psql/describe.h
--- postgresql-7.4beta5.orig/src/bin/psql/describe.h	2003-08-05 01:59:40.0 +0200
+++ postgresql-7.4beta5/src/bin/psql/describe.h	2003-11-02 19:31:27.0 +0100
@@ -25,6 +25,9 @@
 /* \du */
 bool		describeUsers(const char *pattern);
 
+/* \dg */
+bool		describeGroups(const char *pattern);
+
 /* \z (or \dp) */
 bool		permissionsList(const char *pattern);
 
diff -ru postgresql-7.4beta5.orig/src/bin/psql/help.c postgresql-7.4beta5/src/bin/psql/help.c
--- postgresql-7.4beta5.orig/src/bin/psql/help.c	2003-10-02 08:39:31.0 +0200
+++ postgresql-7.4beta5/src/bin/psql/help.c	2003-11-02 19:31:27.0 +0100
@@ -216,6 +216,7 @@
 	fprintf(output, _(  \\dd [PATTERN]  show comment for object\n));
 	fprintf(output, _(  \\dD [PATTERN]  list domains\n));
 	fprintf(output, _(  \\df [PATTERN]  list functions (add \+\ for more detail)\n));
+	fprintf(output, _(  \\dg [PATTERN]  list groups\n));
 	fprintf(output, _(  \\dn [PATTERN]  list schemas\n));
 	fprintf(output, _(  \\do [NAME] list operators\n));
 	fprintf(output, _(  \\dllist large objects, same as \\lo_list\n));
diff -ru postgresql-7.4beta5.orig/src/bin/psql/tab-complete.c postgresql-7.4beta5/src/bin/psql/tab-complete.c
--- postgresql-7.4beta5.orig/src/bin/psql/tab-complete.c	2003-10-17 13:52:06.0 +0200
+++ postgresql-7.4beta5/src/bin/psql/tab-complete.c	2003-11-02 19:32:40.0 +0100
@@ -614,7 +614,7 @@
 
 	static char *backslash_commands[] = {
 		\\a, \\connect, \\C, \\cd, \\copy, \\copyright,
-		\\d, \\da, \\dc, \\dC, \\dd, \\dD, \\df, \\di,
+		\\d, \\da, \\dc, \\dC, \\dd, \\dD, \\df, \\dg, \\di,
 		\\dl, \\dn, \\do, \\dp, \\ds, \\dS, \\dt, \\dT,
 		\\dv, \\du,
 		\\e, \\echo, \\encoding,

---(end of broadcast)---
TIP 6: Have you searched our list archives?

   http://archives.postgresql.org