Re: psql and output from \? - Mailing list pgsql-hackers
From | Bruce Momjian |
---|---|
Subject | Re: psql and output from \? |
Date | |
Msg-id | 200203111821.g2BILUX27268@candle.pha.pa.us Whole thread Raw |
In response to | psql and output from \? (Ian Barwick <barwick@gmx.net>) |
Responses |
Re: psql and output from \?
|
List | pgsql-hackers |
I haven't seen a followup patch so I decided to work on it myself; patch attached and applied to CVS. Thanks. --------------------------------------------------------------------------- Ian Barwick wrote: > > First off: > This is a suggestion for minor changes to the output generated by the \? > command in psql. While it is more of a documentation issue, it would > involve changing code (well, a few strings) - is this the right place for > raising the subject? I would be happy to submit a patch if the changes are > acceptable. > > Background: > In psql the \? command shows a summary of the available "slash" commands. > The syntax shown is however not always consistent (neither with the \? > command output nor with the psql manpage); eg.: > > "\cd [DIRNAME] change the current working directory" > > implies that provision of a parameter is optional (correct), whereas > > "\C TITLE set table title" > > implies that a title parameter is required. This is not in fact the case, > as executing \C without a parameter will unset any title previously set > with the same command. This behaviour is however correctly > documented in the manpage, which also shows the > command syntax as "\C [ title ]". > > Similar is true of the following slash commands: \d \e \f \g \s \T > > Solution: > Appended is a list of relevant backslash commands, their current > description as produced by \?, the respective manpage description (or > first part thereof) and suggested replacment for the \? description. > Assumption is that square brackets - as used elsewhere within the > \? output and the manpage documentation - imply optional parameters. > > > Yours pedantically > > Ian Barwick > > Suggestions follow: > > \C > ----------------------------------------------------------------------- > > psql \?: > \C TITLE set table title > > man: > \C [ title ] > Set the title of any tables being printed as the > result of a query or unset any such title. (...) > > psql \? new: > \C [ TITLE ] set table title (or unset with no arguments) > > > \d > ----------------------------------------------------------------------- > > psql \?: > \d TABLE describe table (or view, index, sequence) > > man: > \d relation > Shows all columns of relation (which could be a > table, view, index, or sequence), (...) > > psql \? new: > \d [ RELATION ] describe relation (table, view, index or sequence) > > > \e > ----------------------------------------------------------------------- > > psql \?: > \e FILENAME edit the current query buffer or file with external editor > > man > \edit (or \e) [ filename ] > If filename is specified, the file is edited; (...) > > psql \? new: > \e [ FILENAME ] edit the current query buffer or file with external editor > > > \f > ----------------------------------------------------------------------- > > psql \?: > \f STRING set field separator > > man: > \f [ string ] > Sets the field separator for unaligned query output. (...) > > psql \? new: > \f [ STRING ] show or set field separator > > > \g > ----------------------------------------------------------------------- > > psql \?: > \g FILENAME send SQL command to server (and write results to file or |pipe) > > man: > \g [ { filename | |command } ] > Sends the current query input buffer to the backend > and optionally saves the output in filename or > pipes the output into a separate Unix shell to exe? > cute command. (...) > > psql \? new: > \g [ FILE | |PIPE ] send SQL command to server (and write results to file or > |pipe) > > > \s > ----------------------------------------------------------------------- > > psql \?: > \s FILENAME print history or save it to file > > man: > \s [ filename ] > Print or save the command line history to filename. > > psql \? new: > \s [ FILENAME ] print command line history or save it to file > > > \T > ----------------------------------------------------------------------- > > psql \?: > \T TEXT set HTML table tag attributes > > man: > \T table_options > Allows you to specify options to be placed within > the table tag in HTML tabular output mode. (...) > > psql \? new: > \T [ TAG_ATTR ] set HTML <table> tag attributes (or unset with no arguments) > > > __END__ > > ---------------------------(end of broadcast)--------------------------- > TIP 3: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to majordomo@postgresql.org so that your > message can get through to the mailing list cleanly > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026 ? psql Index: help.c =================================================================== RCS file: /cvsroot/pgsql/src/bin/psql/help.c,v retrieving revision 1.46 diff -c -r1.46 help.c *** help.c 7 Mar 2002 17:54:42 -0000 1.46 --- help.c 11 Mar 2002 18:20:34 -0000 *************** *** 193,239 **** fprintf(fout, _(" \\c[onnect] [DBNAME|- [USER]]\n" " connect to new database (currently \"%s\")\n"), PQdb(pset.db)); ! fprintf(fout, _(" \\C TITLE set table title\n")); ! fprintf(fout, _(" \\cd [DIRNAME] change the current working directory\n")); fprintf(fout, _(" \\copy ... perform SQL COPY with data stream to the client host\n")); fprintf(fout, _(" \\copyright show PostgreSQL usage and distribution terms\n")); ! fprintf(fout, _(" \\d TABLE describe table (or view, index, sequence)\n")); fprintf(fout, _(" \\d{t|i|s|v}... list tables/indexes/sequences/views\n")); fprintf(fout, _(" \\d{p|S|l} list access privileges, system tables, or large objects\n")); fprintf(fout, _(" \\da list aggregate functions\n")); ! fprintf(fout, _(" \\dd NAME show comment for table, type, function, or operator\n")); fprintf(fout, _(" \\df list functions\n")); fprintf(fout, _(" \\do list operators\n")); fprintf(fout, _(" \\dT list data types\n")); ! fprintf(fout, _(" \\du [PATTERN] Lists all configured users or only those that match pattern\n")); ! fprintf(fout, _(" \\e FILENAME edit the current query buffer or file with external editor\n")); fprintf(fout, _(" \\echo TEXT write text to standard output\n")); fprintf(fout, _(" \\encoding ENCODING set client encoding\n")); ! fprintf(fout, _(" \\f STRING set field separator\n")); ! fprintf(fout, _(" \\g FILENAME send SQL command to server (and write results to file or |pipe)\n")); fprintf(fout, _(" \\h NAME help on syntax of SQL commands, * for all commands\n")); fprintf(fout, _(" \\H toggle HTML output mode (currently %s)\n"), ON(pset.popt.topt.format == PRINT_HTML)); ! fprintf(fout, _(" \\i FILENAME execute commands from file\n")); fprintf(fout, _(" \\l list all databases\n")); fprintf(fout, _(" \\lo_export, \\lo_import, \\lo_list, \\lo_unlink\n" ! " large object operations\n")); ! fprintf(fout, _(" \\o FILENAME send all query results to file or |pipe\n")); fprintf(fout, _(" \\p show the content of the current query buffer\n")); fprintf(fout, _(" \\pset VAR set table output option (VAR := {format|border|expanded|\n" ! " fieldsep|null|recordsep|tuples_only|title|tableattr|pager})\n")); fprintf(fout, _(" \\q quit psql\n")); fprintf(fout, _(" \\qecho TEXT write text to query output stream (see \\o)\n")); fprintf(fout, _(" \\r reset (clear) the query buffer\n")); ! fprintf(fout, _(" \\s FILENAME print history or save it to file\n")); fprintf(fout, _(" \\set NAME VALUE set internal variable\n")); fprintf(fout, _(" \\t show only rows (currently %s)\n"), ON(pset.popt.topt.tuples_only)); ! fprintf(fout, _(" \\T TEXT set HTML table tag attributes\n")); fprintf(fout, _(" \\timing toggle timing of queries (currently %s)\n"), ON(pset.timing)); fprintf(fout, _(" \\unset NAME unset (delete) internal variable\n")); ! fprintf(fout, _(" \\w FILENAME write current query buffer to file\n")); fprintf(fout, _(" \\x toggle expanded output (currently %s)\n"), ON(pset.popt.topt.expanded)); fprintf(fout, _(" \\z list table access privileges\n")); --- 193,239 ---- fprintf(fout, _(" \\c[onnect] [DBNAME|- [USER]]\n" " connect to new database (currently \"%s\")\n"), PQdb(pset.db)); ! fprintf(fout, _(" \\C [TITLE] set table title, or unset with no title\n")); ! fprintf(fout, _(" \\cd [DIR] change the current working directory\n")); fprintf(fout, _(" \\copy ... perform SQL COPY with data stream to the client host\n")); fprintf(fout, _(" \\copyright show PostgreSQL usage and distribution terms\n")); ! fprintf(fout, _(" \\d [TABLE] describe table (or view, index, sequence)\n")); fprintf(fout, _(" \\d{t|i|s|v}... list tables/indexes/sequences/views\n")); fprintf(fout, _(" \\d{p|S|l} list access privileges, system tables, or large objects\n")); fprintf(fout, _(" \\da list aggregate functions\n")); ! fprintf(fout, _(" \\dd [NAME] show comment for table, type, function, or operator\n")); fprintf(fout, _(" \\df list functions\n")); fprintf(fout, _(" \\do list operators\n")); fprintf(fout, _(" \\dT list data types\n")); ! fprintf(fout, _(" \\du [PATTERN] lists all configured users or only those that match pattern\n")); ! fprintf(fout, _(" \\e [FILE] edit the current query buffer or file with external editor\n")); fprintf(fout, _(" \\echo TEXT write text to standard output\n")); fprintf(fout, _(" \\encoding ENCODING set client encoding\n")); ! fprintf(fout, _(" \\f [SEPARATOR] set field separator, or unset if none\n")); ! fprintf(fout, _(" \\g [FILE] send SQL command to server (and write results to file or |pipe)\n")); fprintf(fout, _(" \\h NAME help on syntax of SQL commands, * for all commands\n")); fprintf(fout, _(" \\H toggle HTML output mode (currently %s)\n"), ON(pset.popt.topt.format == PRINT_HTML)); ! fprintf(fout, _(" \\i FILE execute commands from file\n")); fprintf(fout, _(" \\l list all databases\n")); fprintf(fout, _(" \\lo_export, \\lo_import, \\lo_list, \\lo_unlink\n" ! " large object operations\n")); ! fprintf(fout, _(" \\o FILE send all query results to file or |pipe\n")); fprintf(fout, _(" \\p show the content of the current query buffer\n")); fprintf(fout, _(" \\pset VAR set table output option (VAR := {format|border|expanded|\n" ! " fieldsep|null|recordsep|tuples_only|title|tableattr|pager})\n")); fprintf(fout, _(" \\q quit psql\n")); fprintf(fout, _(" \\qecho TEXT write text to query output stream (see \\o)\n")); fprintf(fout, _(" \\r reset (clear) the query buffer\n")); ! fprintf(fout, _(" \\s [FILE] print history or save it to file\n")); fprintf(fout, _(" \\set NAME VALUE set internal variable\n")); fprintf(fout, _(" \\t show only rows (currently %s)\n"), ON(pset.popt.topt.tuples_only)); ! fprintf(fout, _(" \\T [TAG_ATTR] set HTML table tag attributes, or unset if none\n")); fprintf(fout, _(" \\timing toggle timing of queries (currently %s)\n"), ON(pset.timing)); fprintf(fout, _(" \\unset NAME unset (delete) internal variable\n")); ! fprintf(fout, _(" \\w FILE write current query buffer to file\n")); fprintf(fout, _(" \\x toggle expanded output (currently %s)\n"), ON(pset.popt.topt.expanded)); fprintf(fout, _(" \\z list table access privileges\n"));
pgsql-hackers by date: