Hello here is a prototype:
bash-4.1$ /usr/local/pgsql/bin/psql --help-variables List of some variables (options) for use from command line. Complete list you find in psql section in the PostgreSQL documentation. psql variables: Usage: psql --set=NAME=VALUE or \set NAME VALUE in interactive mode AUTOCOMMIT when is on, successful SQL command is automatically commited COMP_KEYWORD_CASE determines which letter case to use when completing an SQL key word ECHO all lines from input can be written to standard output ECHO_HIDDEN display queries for internal commands (same as -E option) FETCH_COUNT how many rows should be for one page (default 0 unlimited) HISTFILE file name that be used for store history list HISTSIZE the number of commands to store in the command history ON_ERROR_ROLLBACK when is on, raise ROLLBACK on error automatically ON_ERROR_STOP when is set, then batch execution stop immediately after error VERBOSITY control verbosity of error reports [default, verbose, terse] Printing options: Usage: psql --pset=NAME[=VALUE] or \pset NAME [VALUE] in interactive mode border number of border style fieldsep specify field separator for unaligned output fieldsep_zero field separator in unaligned mode will be zero format set output format [unaligned, aligned, wrapped, html, latex, ..] linestyle sets the border line drawing style [ascii, old-ascii, unicode] null sets the string to be printed in place of a null value pager when the pager option is off, the pager program is not used recordsep specifies the record (line) separator to use in unaligned output format recordsep_zero record separator be in unaligned output format a zero byte title sets the table title for any subsequently printed tables tuples_only in tuples-only mode, only actual table data is shown Environment options: Usage: NAME=VALUE, [NAME=VALUE] psql ... or \setenv NAME [VALUE] in interactive mode COLUMNS number of columns for wrapped format PAGER used pager PGHOST same as the host connection parameter PGDATABASE same as the dbname connection parameter PGUSER same as the user connection parameter PGPASSWORD possibility to set password PSQL_EDITOR, EDITOR, VISUAL editor used by \e \ef commands PSQL_EDITOR_LINE_NUMBER_ARG style how to line number is used in editor PSQL_HISTORY alternative location for the command history file PSQL_RC alternative location of the user's .psqlrc file SHELL command executed by the \! command TMPDIR directory for storing temporary files For more information consult the psql section in the PostgreSQL documentation. Regards Pavel 2014-02-28 23:01 GMT+01:00 Andrew Dunstan <and...@dunslane.net>: > > On 02/28/2014 04:38 PM, Tom Lane wrote: > >> Andrew Dunstan <and...@dunslane.net> writes: >> >>> Well, then we just have to add more info to --help >>>> >>> +1 for at least doing that. I found it annoying just the other day not >>> to find it in plsql's --help output, in a moment of brain fade when I >>> forgot how to spell it. So it's not just beginners who can benefit, it's >>> people like me whose memory occasionally goes awry. >>> >> No objection in principle, but what are we talking about exactly? >> Adding some new backslash command that lists all the variables that have >> special meanings? >> > > > That's a pretty good idea, especially if we give that command a command > line option too, so something like > > psql --special-variables > > would run that command and exit. > > Maybe I'm over-egging the pudding a bit ;-) > > cheers > > andrew >
commit 82a6a61a11bdb76c00481abeccff42b4b532762e Author: Pavel Stehule <pavel.steh...@gmail.com> Date: Sat Mar 1 09:34:47 2014 +0100 initial diff --git a/src/bin/psql/help.c b/src/bin/psql/help.c index baa9417..fb77132 100644 --- a/src/bin/psql/help.c +++ b/src/bin/psql/help.c @@ -78,12 +78,13 @@ usage(void) printf(_(" -f, --file=FILENAME execute commands from file, then exit\n")); printf(_(" -l, --list list available databases, then exit\n")); printf(_(" -v, --set=, --variable=NAME=VALUE\n" - " set psql variable NAME to VALUE\n")); + " set psql variable NAME to VALUE e.g.: -v ON_ERROR_STOP=1\n")); printf(_(" -V, --version output version information, then exit\n")); printf(_(" -X, --no-psqlrc do not read startup file (~/.psqlrc)\n")); printf(_(" -1 (\"one\"), --single-transaction\n" " execute as a single transaction (if non-interactive)\n")); printf(_(" -?, --help show this help, then exit\n")); + printf(_(" --help-variables list of available configuration variables (options), then exit\n")); printf(_("\nInput and output options:\n")); printf(_(" -a, --echo-all echo all input from script\n")); @@ -279,6 +280,68 @@ slashUsage(unsigned short int pager) } +/* + * show list of available variables (options) from command line + */ +void +help_variables(void) +{ + printf(_("List of some variables (options) for use from command line.\n")); + printf(_("Complete list you find in psql section in the PostgreSQL documentation.\n\n")); + + printf(_("psql variables:\n")); + printf(_("Usage:\n")); + printf(_(" psql --set=NAME=VALUE\n or \\set NAME VALUE in interactive mode\n\n")); + + printf(_(" AUTOCOMMIT when is on, successful SQL command is automatically commited\n")); + printf(_(" COMP_KEYWORD_CASE determines which letter case to use when completing an SQL key word\n")); + printf(_(" ECHO all lines from input can be written to standard output\n")); + printf(_(" ECHO_HIDDEN display queries for internal commands (same as -E option)\n")); + printf(_(" FETCH_COUNT how many rows should be for one page (default 0 unlimited)\n")); + printf(_(" HISTFILE file name that be used for store history list\n")); + printf(_(" HISTSIZE the number of commands to store in the command history\n")); + printf(_(" ON_ERROR_ROLLBACK when is on, raise ROLLBACK on error automatically\n")); + printf(_(" ON_ERROR_STOP when is set, then batch execution stop immediately after error\n")); + printf(_(" VERBOSITY control verbosity of error reports [default, verbose, terse]\n")); + + printf(_("\nPrinting options:\n")); + printf(_("Usage:\n")); + printf(_(" psql --pset=NAME[=VALUE]\n or \\pset NAME [VALUE] in interactive mode\n\n")); + + printf(_(" border number of border style\n")); + printf(_(" fieldsep specify field separator for unaligned output\n")); + printf(_(" fieldsep_zero field separator in unaligned mode will be zero\n")); + printf(_(" format set output format [unaligned, aligned, wrapped, html, latex, ..]\n")); + printf(_(" linestyle sets the border line drawing style [ascii, old-ascii, unicode]\n")); + printf(_(" null sets the string to be printed in place of a null value\n")); + printf(_(" pager when the pager option is off, the pager program is not used\n")); + printf(_(" recordsep specifies the record (line) separator to use in unaligned output format\n")); + printf(_(" recordsep_zero record separator be in unaligned output format a zero byte\n")); + printf(_(" title sets the table title for any subsequently printed tables\n")); + printf(_(" tuples_only in tuples-only mode, only actual table data is shown\n")); + + printf(_("\nEnvironment options:\n")); + printf(_("Usage:\n")); + printf(_(" NAME=VALUE, [NAME=VALUE] psql ...\n or \\setenv NAME [VALUE] in interactive mode\n\n")); + + printf(_(" COLUMNS number of columns for wrapped format\n")); + printf(_(" PAGER used pager\n")); + printf(_(" PGHOST same as the host connection parameter\n")); + printf(_(" PGDATABASE same as the dbname connection parameter\n")); + printf(_(" PGUSER same as the user connection parameter\n")); + printf(_(" PGPASSWORD possibility to set password\n")); + printf(_(" PSQL_EDITOR, EDITOR, VISUAL editor used by \\e \\ef commands\n")); + printf(_(" PSQL_EDITOR_LINE_NUMBER_ARG style how to line number is used in editor\n")); + printf(_(" PSQL_HISTORY alternative location for the command history file\n")); + printf(_(" PSQL_RC alternative location of the user's .psqlrc file\n")); + printf(_(" SHELL command executed by the \\! command\n")); + printf(_(" TMPDIR directory for storing temporary files\n")); + + printf(_("\nFor more information consult the psql section in the PostgreSQL\n" + "documentation.\n\n")); + printf(_("Report bugs to <pgsql-b...@postgresql.org>.\n")); +} + /* * helpSQL -- help with SQL commands diff --git a/src/bin/psql/help.h b/src/bin/psql/help.h index 054d5a4..e7affff 100644 --- a/src/bin/psql/help.h +++ b/src/bin/psql/help.h @@ -12,6 +12,8 @@ void usage(void); void slashUsage(unsigned short int pager); +void help_variables(void); + void helpSQL(const char *topic, unsigned short int pager); void print_copyright(void); diff --git a/src/bin/psql/startup.c b/src/bin/psql/startup.c index 1061992..22c1976 100644 --- a/src/bin/psql/startup.c +++ b/src/bin/psql/startup.c @@ -382,6 +382,7 @@ parse_psql_options(int argc, char *argv[], struct adhoc_opts * options) {"expanded", no_argument, NULL, 'x'}, {"no-psqlrc", no_argument, NULL, 'X'}, {"help", no_argument, NULL, '?'}, + {"help-variables", no_argument, 0}, {NULL, 0, NULL, 0} }; @@ -390,7 +391,7 @@ parse_psql_options(int argc, char *argv[], struct adhoc_opts * options) memset(options, 0, sizeof *options); - while ((c = getopt_long(argc, argv, "aAc:d:eEf:F:h:HlL:no:p:P:qR:sStT:U:v:VwWxXz?01", + while ((c = getopt_long(argc, argv, "aAc:d:eEf:F:h:HlL:no:p:P:qR:sStT:U:v:VwWxXz?001", long_options, &optindex)) != -1) { switch (c) @@ -565,6 +566,13 @@ parse_psql_options(int argc, char *argv[], struct adhoc_opts * options) exit(EXIT_FAILURE); } break; + case 0: + if (strcmp(argv[optind - 1], "--help-variables") == 0) + { + help_variables(); + exit(EXIT_SUCCESS); + } + break; default: fprintf(stderr, _("Try \"%s --help\" for more information.\n"), pset.progname);
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers