diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml
index 868de18418..fd2ca15d0a 100644
--- a/doc/src/sgml/ref/psql-ref.sgml
+++ b/doc/src/sgml/ref/psql-ref.sgml
@@ -2665,10 +2665,10 @@ lo_import 152801
Controls use of a pager program for query and psql>
- help output. If the environment variable PAGER
- is set, the output is piped to the specified program.
- Otherwise a platform-dependent default (such as
- more) is used.
+ help output. If the environment variable PSQL_PAGER
+ or PAGER is set, the output is piped to the
+ specified program. Otherwise a platform-dependent default program
+ (such as more) is used.
@@ -4106,21 +4106,6 @@ $endif
-
- PAGER
-
-
-
- If the query results do not fit on the screen, they are piped
- through this command. Typical values are
- more or less. The default
- is platform-dependent. Use of the pager can be disabled by setting
- PAGER to empty, or by using pager-related options of
- the \pset command.
-
-
-
-
PGDATABASE
PGHOST
@@ -4145,11 +4130,8 @@ $endif
and \ev commands.
These variables are examined in the order listed;
the first that is set is used.
-
-
-
- The built-in default editors are vi on Unix
- systems and notepad.exe on Windows systems.
+ If none of them is set, the default is to use vi
+ on Unix systems or notepad.exe on Windows systems.
@@ -4192,6 +4174,27 @@ PSQL_EDITOR_LINENUMBER_ARG='--line '
+
+ PSQL_PAGER
+ PAGER
+
+
+
+ If a query's results do not fit on the screen, they are piped
+ through this command. Typical values are more
+ or less.
+ Use of the pager can be disabled by setting PSQL_PAGER
+ or PAGER to an empty string, or by adjusting the
+ pager-related options of the \pset command.
+ These variables are examined in the order listed;
+ the first that is set is used.
+ If none of them is set, the default is to use more> on most
+ platforms, but less> on Cygwin.
+
+
+
+
+
PSQLRC
diff --git a/src/bin/psql/help.c b/src/bin/psql/help.c
index 724cf8e761..9d366180af 100644
--- a/src/bin/psql/help.c
+++ b/src/bin/psql/help.c
@@ -459,8 +459,6 @@ helpVariables(unsigned short int pager)
fprintf(output, _(" COLUMNS\n"
" number of columns for wrapped format\n"));
- fprintf(output, _(" PAGER\n"
- " name of external pager program\n"));
fprintf(output, _(" PGAPPNAME\n"
" same as the application_name connection parameter\n"));
fprintf(output, _(" PGDATABASE\n"
@@ -481,6 +479,8 @@ helpVariables(unsigned short int pager)
" how to specify a line number when invoking the editor\n"));
fprintf(output, _(" PSQL_HISTORY\n"
" alternative location for the command history file\n"));
+ fprintf(output, _(" PSQL_PAGER, PAGER\n"
+ " name of external pager program\n"));
fprintf(output, _(" PSQLRC\n"
" alternative location for the user's .psqlrc file\n"));
fprintf(output, _(" SHELL\n"
diff --git a/src/fe_utils/print.c b/src/fe_utils/print.c
index f756f767e5..8af5bbe97e 100644
--- a/src/fe_utils/print.c
+++ b/src/fe_utils/print.c
@@ -2870,7 +2870,9 @@ PageOutput(int lines, const printTableOpt *topt)
const char *pagerprog;
FILE *pagerpipe;
- pagerprog = getenv("PAGER");
+ pagerprog = getenv("PSQL_PAGER");
+ if (!pagerprog)
+ pagerprog = getenv("PAGER");
if (!pagerprog)
pagerprog = DEFAULT_PAGER;
else
diff --git a/src/interfaces/libpq/fe-print.c b/src/interfaces/libpq/fe-print.c
index 89bc4c5429..6dbf847280 100644
--- a/src/interfaces/libpq/fe-print.c
+++ b/src/interfaces/libpq/fe-print.c
@@ -165,6 +165,13 @@ PQprint(FILE *fout, const PGresult *res, const PQprintOpt *po)
screen_size.ws_row = 24;
screen_size.ws_col = 80;
#endif
+
+ /*
+ * Since this function is no longer used by psql, we don't examine
+ * PSQL_PAGER. It's possible that the hypothetical external users
+ * of the function would like that to happen, but in the name of
+ * backwards compatibility, we'll stick to just examining PAGER.
+ */
pagerenv = getenv("PAGER");
/* if PAGER is unset, empty or all-white-space, don't use pager */
if (pagerenv != NULL &&