postgresql/doc/src/sgml
Tom Lane 370c7a863a Handle empty or all-blank PAGER setting more sanely in psql.
If the PAGER environment variable is set but contains an empty string,
psql would pass it to "sh" which would silently exit, causing whatever
query output we were printing to vanish entirely.  This is quite
mystifying; it took a long time for us to figure out that this was the
cause of Joseph Brenner's trouble report.  Rather than allowing that
to happen, we should treat this as another way to specify "no pager".
(We could alternatively treat it as selecting the default pager, but
it seems more likely that the former is what the user meant to achieve
by setting PAGER this way.)

Nonempty, but all-white-space, PAGER values have the same behavior, and
it's pretty easy to test for that, so let's handle that case the same way.

Most other cases of faulty PAGER values will result in the shell printing
some kind of complaint to stderr, which should be enough to diagnose the
problem, so we don't need to work harder than this.  (Note that there's
been an intentional decision not to be very chatty about apparent failure
returns from the pager process, since that may happen if, eg, the user
quits the pager with control-C or some such.  I'd just as soon not start
splitting hairs about which exit codes might merit making our own report.)

libpq's old PQprint() function was already on board with ignoring empty
PAGER values, but for consistency, make it ignore all-white-space values
as well.

It's been like this a long time, so back-patch to all supported branches.

Discussion: https://postgr.es/m/CAFfgvXWLOE2novHzYjmQK8-J6TmHz42G8f3X0SORM44+stUGmw@mail.gmail.com
2016-12-07 12:19:56 -05:00
..
ref Handle empty or all-blank PAGER setting more sanely in psql. 2016-12-07 12:19:56 -05:00
.gitignore Don't generate plain-text HISTORY and src/test/regress/README anymore. 2014-02-10 20:48:04 -05:00
acronyms.sgml
adminpack.sgml Doc: write some for adminpack. 2016-08-10 21:39:59 -04:00
advanced.sgml doc: split long query into multiple lines 2013-12-04 10:03:13 -05:00
arch-dev.sgml doc: Fix claim that query is passed as ASCII text 2013-05-30 21:09:27 -04:00
array.sgml Improve documentation about array concat operator vs. underlying functions. 2015-07-09 18:50:31 -04:00
auth-delay.sgml doc: Fix DocBook XML validity 2014-05-06 21:28:58 -04:00
auto-explain.sgml Fix failure of contrib/auto_explain to print per-node timing information. 2014-09-19 13:19:27 -04:00
backup.sgml doc: Spell checking 2015-09-10 21:40:06 -04:00
bgworker.sgml Fix spi_worker mention in bgworker documentation 2016-01-28 14:08:21 +01:00
biblio.sgml
bki.sgml Allow forcing nullness of columns during bootstrap. 2015-02-21 22:31:54 +01:00
brin.sgml docs: Fix typo'd brin_summarize_new_values 2016-03-17 20:17:04 -03:00
btree-gin.sgml docs: consistently uppercase index method and add spacing 2015-05-15 11:42:34 -04:00
btree-gist.sgml doc: Fix typos 2016-07-14 22:28:41 -04:00
catalogs.sgml Don't require dynamic timezone abbreviations to match underlying time zone. 2016-09-02 17:29:31 -04:00
charset.sgml Docs: fix erroneous claim about max byte length of GB18030. 2015-05-14 14:59:00 -04:00
chkpass.sgml
citext.sgml citext's regexp_matches() functions weren't documented, either. 2015-05-05 16:11:01 -04:00
client-auth.sgml doc: Spell checking 2015-09-10 21:40:06 -04:00
config.sgml Mention server start requirement for ssl parameters 2016-11-27 17:11:12 +01:00
contacts.sgml
contrib-spi.sgml
contrib.sgml Remove *pgaudit* references also. 2015-05-28 13:02:09 -04:00
cube.sgml doc: Tweak "cube" index entry 2015-09-26 21:02:24 -04:00
custom-scan.sgml doc: Spell checking 2015-09-10 21:40:06 -04:00
datatype.sgml Fix typo. 2016-01-18 21:28:10 +09:00
datetime.sgml Don't require dynamic timezone abbreviations to match underlying time zone. 2016-09-02 17:29:31 -04:00
dblink.sgml dblink docs: fix typo to use "connname" (3 n's), not "conname" 2015-08-27 13:43:10 -04:00
ddl.sgml Doc: improve documentation about inheritance. 2016-10-26 11:46:26 -04:00
dfunc.sgml doc: Reflect renaming of Mac OS X to OS X 2014-09-09 13:56:29 -04:00
dict-int.sgml
dict-xsyn.sgml
diskusage.sgml Get rid of pg_class.reltoastidxid. 2013-07-04 03:24:09 +09:00
dml.sgml Doc: add a section in Part II concerning RETURNING. 2016-11-22 14:03:09 -05:00
docguide.sgml doc: Check DocBook XML validity during the build 2014-10-21 14:46:38 -04:00
earthdistance.sgml Doc: update external URLs for PostGIS project. 2015-12-12 20:02:14 -05:00
ecpg.sgml doc: Fix more typos 2016-05-04 14:07:12 -04:00
errcodes.sgml Provide database object names as separate fields in error messages. 2013-01-29 17:08:26 -05:00
event-trigger.sgml Mention table_rewrite as valid event trigger tag 2015-07-15 17:08:46 +03:00
extend.sgml Fix pg_dump handling of extension config tables 2015-03-02 14:12:21 -05:00
external-projects.sgml doc: Update URL for PL/PHP 2016-07-11 12:12:04 -04:00
fdwhandler.sgml Update GetForeignPlan documentation. 2016-03-08 14:33:42 -05:00
features.sgml
file-fdw.sgml Provide a FORCE NULL option to COPY in CSV mode. 2014-03-04 17:31:59 -05:00
filelist.sgml First draft of 9.5 release notes 2015-06-11 00:09:32 -04:00
fixrtf
func.sgml Doc: improve description of trim() and related functions. 2016-11-30 13:34:14 -05:00
fuzzystrmatch.sgml Improve levenshtein() docs. 2016-01-22 12:29:22 -05:00
generate-errcodes-table.pl Update copyright for 2015 2015-01-06 11:43:47 -05:00
geqo.sgml doc: Improve setup for documentation building with FOP 2013-10-21 06:43:08 -04:00
gin.sgml doc: Fix typo 2016-05-13 21:25:46 -04:00
gist.sgml Remove no-longer-required function declarations. 2015-05-24 12:20:23 -04:00
high-availability.sgml Fix ordering/categorization of some recently-added system views. 2016-05-05 12:33:13 -04:00
history.sgml Add small doc mention that libpq is named after POSTQUEL. 2012-09-02 08:42:03 -04:00
hstore.sgml Add hstore_to_jsonb() and hstore_to_jsonb_loose() to hstore documentation. 2016-02-03 12:56:40 -05:00
indexam.sgml Add support for index-only scans in GiST. 2015-03-26 19:12:00 +02:00
indices.sgml Mention BRIN as able to do multi-column indexes 2016-03-28 19:11:12 -03:00
info.sgml
information_schema.sgml doc: Remove documentation of nonexistent information schema columns 2016-08-03 13:47:07 -04:00
install-windows.sgml doc: Fix typos 2016-07-14 22:28:41 -04:00
installation.sgml Doc: wording tweak for PERL, PYTHON, TCLSH configuration variables. 2016-10-21 11:01:44 -04:00
intagg.sgml Add contrib function references in the doc index 2013-07-04 11:33:11 -04:00
intarray.sgml Add contrib function references in the doc index 2013-07-04 11:33:11 -04:00
intro.sgml Support automatically-updatable views. 2012-12-08 18:26:21 -05:00
isn.sgml Update URL reference material in /contrib/isn docs 2014-09-03 17:22:20 -04:00
jadetex.cfg Improve our workaround for 'TeX capacity exceeded' in building PDF files. 2015-11-10 16:00:13 -05:00
json.sgml Docs: add example clarifying use of nested JSON containment. 2015-10-29 18:54:44 -04:00
keywords.sgml Update key words table for 9.5 2015-08-14 12:10:35 -04:00
legal.sgml Update copyright for 2016 2016-01-02 13:33:39 -05:00
libpq.sgml Document use of Subject Alternative Names in SSL server certificates. 2015-12-15 16:57:23 -05:00
lo.sgml
lobj.sgml Update copyright for 2015 2015-01-06 11:43:47 -05:00
logicaldecoding.sgml Add ID property to replication slots' sect2 2016-08-11 15:10:56 -04:00
ltree.sgml docs: consistently uppercase index method and add spacing 2015-05-15 11:42:34 -04:00
maintenance.sgml Doc: small improvements for documentation about VACUUM freezing. 2016-09-06 17:50:53 -04:00
Makefile doc: Call xmllint for validity also in the fop build 2015-06-10 19:54:28 -04:00
manage-ag.sgml doc: Spell checking 2015-09-10 21:40:06 -04:00
mk_feature_tables.pl
monitoring.sgml Add system view pg_stat_ssl 2015-04-12 19:07:46 +02:00
mvcc.sgml Add RMV to list of commands taking AE lock. 2015-11-02 06:26:28 -06:00
nls.sgml Rename 'gmake' to 'make' in docs and recommended commands 2014-02-12 17:29:19 -05:00
notation.sgml doc: Remove paragraph about typesetting conventions 2013-05-31 22:45:03 -04:00
oid2name.sgml doc: Improve DocBook XML validity 2014-02-23 21:31:08 -05:00
pageinspect.sgml doc: Whitespace and formatting fixes 2015-08-20 22:34:35 -04:00
passwordcheck.sgml Remove support for native krb5 authentication 2014-01-19 17:05:01 +01:00
perform.sgml Allow foreign tables to participate in inheritance. 2015-03-22 13:53:21 -04:00
pgbuffercache.sgml Fix obsolete header-file reference in pg_buffercache docs. 2016-07-13 11:17:15 -04:00
pgcrypto.sgml pgcrypto: Report errant decryption as "Wrong key or corrupt data". 2015-05-18 10:02:31 -04:00
pgfreespacemap.sgml doc: Fix DocBook XML validity 2014-05-06 21:28:58 -04:00
pgprewarm.sgml Small grammar fix 2015-08-31 14:07:41 +02:00
pgrowlocks.sgml docs: remove unnecessary references to old PG versions 2014-02-24 12:56:37 -05:00
pgstandby.sgml doc: Improve DocBook XML validity 2014-02-23 21:31:08 -05:00
pgstatstatements.sgml Docs: explain contrib/pg_stat_statements' handling of GC failure. 2015-10-05 12:44:20 -04:00
pgstattuple.sgml Fix multiple bugs in contrib/pgstattuple's pgstatindex() function. 2016-02-18 15:40:35 -05:00
pgtrgm.sgml docs: consistently uppercase index method and add spacing 2015-05-15 11:42:34 -04:00
planstats.sgml Improve wording in the planner doc 2016-02-16 15:36:52 +09:00
plhandler.sgml Document security implications of check_function_bodies. 2014-02-17 09:33:31 -05:00
plperl.sgml doc: Fix DocBook XML validity 2014-05-06 21:28:58 -04:00
plpgsql.sgml Doc: improve discussion of plpgsql's GET DIAGNOSTICS, other minor fixes. 2016-07-18 16:52:06 -04:00
plpython.sgml Document that PL/Python now returns floats using repr() not str(). 2015-09-01 19:25:58 -04:00
pltcl.sgml Rationalize and document pltcl's handling of magic ".tupno" array element. 2016-11-06 14:43:13 -05:00
postgres-fdw.sgml Add docs about postgres_fdw's setting of search_path and other GUCs. 2015-08-15 14:31:11 -04:00
postgres.sgml Redesign tablesample method API, and do extensive code review. 2015-07-25 14:39:00 -04:00
problems.sgml
protocol.sgml doc: Fix typos 2016-05-03 21:07:00 -04:00
queries.sgml Doc: improve documentation about composite-value usage. 2016-11-22 17:56:16 -05:00
query.sgml
rangetypes.sgml docs: Map operator @> to the proper SGML escape for '>' 2015-10-07 09:42:26 -04:00
README.links docs: improve xref description for xreflabel and refentry links 2014-01-30 12:26:18 -05:00
recovery-config.sgml Ignore recovery_min_apply_delay until recovery has reached consistent state 2016-03-06 02:43:17 +09:00
reference.sgml Add transforms feature 2015-04-26 10:33:14 -04:00
regress.sgml Lock down regression testing temporary clusters on Windows. 2014-12-17 22:48:40 -05:00
release-7.4.sgml doc: Various typo/grammar fixes 2014-08-30 10:52:36 -05:00
release-8.0.sgml Improve cross-references between minor version release notes. 2014-02-12 19:09:18 -05:00
release-8.1.sgml Improve cross-references between minor version release notes. 2014-02-12 19:09:18 -05:00
release-8.2.sgml doc: Various typo/grammar fixes 2014-08-30 10:52:36 -05:00
release-8.3.sgml Fix recovery_command -> restore_command typo in 8.3 release notes. 2015-02-24 14:41:54 +02:00
release-8.4.sgml Doc: update external URLs for PostGIS project. 2015-12-12 20:02:14 -05:00
release-9.0.sgml Adjust back-branch release note description of commits a2a718b22 et al. 2016-01-02 15:29:03 -05:00
release-9.1.sgml Release notes for 9.6.1, 9.5.5, 9.4.10, 9.3.15, 9.2.19, 9.1.24. 2016-10-23 22:13:28 -04:00
release-9.2.sgml Release notes for 9.6.1, 9.5.5, 9.4.10, 9.3.15, 9.2.19, 9.1.24. 2016-10-23 22:13:28 -04:00
release-9.3.sgml Release notes for 9.6.1, 9.5.5, 9.4.10, 9.3.15, 9.2.19, 9.1.24. 2016-10-23 22:13:28 -04:00
release-9.4.sgml Release notes for 9.6.1, 9.5.5, 9.4.10, 9.3.15, 9.2.19, 9.1.24. 2016-10-23 22:13:28 -04:00
release-9.5.sgml Update release notes for last-minute commit timestamp fix. 2016-10-24 09:37:23 -04:00
release-old.sgml doc: Various typo/grammar fixes 2014-08-30 10:52:36 -05:00
release.sgml First draft of 9.5 release notes 2015-06-11 00:09:32 -04:00
replication-origins.sgml Fix ordering/categorization of some recently-added system views. 2016-05-05 12:33:13 -04:00
rowtypes.sgml Doc: improve documentation about composite-value usage. 2016-11-22 17:56:16 -05:00
rules.sgml docs: fix typo in rules.sgml 2015-08-08 20:40:53 -04:00
runtime.sgml Improve documentation about use of Linux huge pages. 2016-10-22 14:04:51 -04:00
seg.sgml
sepgsql.sgml doc: Fix typos 2016-07-14 22:28:41 -04:00
sourcerepo.sgml
sources.sgml Fix misc typos. 2015-09-05 11:36:18 +03:00
spgist.sgml Add an in-core GiST index opclass for inet/cidr types. 2014-04-08 15:46:43 -04:00
spi.sgml doc: Spell checking 2014-07-16 22:48:11 -04:00
sql.sgml Implement SKIP LOCKED for row-level locks 2014-10-07 17:23:34 -03:00
sslinfo.sgml doc: Fix DocBook XML validity 2014-05-06 21:28:58 -04:00
standalone-install.sgml Don't generate plain-text HISTORY and src/test/regress/README anymore. 2014-02-10 20:48:04 -05:00
start.sgml Fix wording in the Tutorial document. 2016-02-21 09:16:55 +09:00
storage.sgml Fix mention of htup.h in storage.sgml 2015-10-01 23:13:07 +09:00
stylesheet-common.xsl doc: Disable preface.autolabel in XSLT 2013-12-01 17:13:23 -05:00
stylesheet-fo.xsl doc: Fix PDF build with FOP 2015-06-03 20:19:47 -04:00
stylesheet-hh.xsl
stylesheet-man.xsl doc: Work around stylesheet bug for man build 2014-08-17 09:10:28 -04:00
stylesheet.css
stylesheet.dsl doc: Move website-stylesheet setting to a more appropriate location 2014-12-11 21:48:01 -05:00
stylesheet.xsl doc: Disable indentation of XHTML output 2014-02-05 23:49:25 -05:00
syntax.sgml Doc: improve documentation about composite-value usage. 2016-11-22 17:56:16 -05:00
tablefunc.sgml Add contrib function references in the doc index 2013-07-04 11:33:11 -04:00
tablesample-method.sgml Redesign tablesample method API, and do extensive code review. 2015-07-25 14:39:00 -04:00
tcn.sgml
test-decoding.sgml doc: Fix spacing in verbatim environments 2014-07-08 11:39:36 -04:00
textsearch.sgml docs: update guidelines on when to use GIN and GiST indexes 2015-10-05 13:38:36 -04:00
trigger.sgml Remove no-longer-required function declarations. 2015-05-24 12:20:23 -04:00
tsearch2.sgml
tsm-system-rows.sgml Redesign tablesample method API, and do extensive code review. 2015-07-25 14:39:00 -04:00
tsm-system-time.sgml Redesign tablesample method API, and do extensive code review. 2015-07-25 14:39:00 -04:00
typeconv.sgml Use standard casting mechanism to convert types in plpgsql, when possible. 2015-03-04 11:04:30 -05:00
unaccent.sgml Allow multi-character source strings in contrib/unaccent. 2014-06-30 21:46:29 -04:00
user-manag.sgml Further improve documentation of the role-dropping process. 2015-12-04 14:44:22 -05:00
uuid-ossp.sgml doc: Reflect renaming of Mac OS X to OS X 2014-09-09 13:56:29 -04:00
vacuumlo.sgml doc: Improve DocBook XML validity 2014-02-23 21:31:08 -05:00
wal.sgml Also trigger restartpoints based on max_wal_size on standby. 2015-06-29 00:09:10 +03:00
xaggr.sgml Improve speed of aggregates that use array_append as transition function. 2016-10-30 12:27:41 -04:00
xfunc.sgml Doc: improve documentation about composite-value usage. 2016-11-22 17:56:16 -05:00
xindex.sgml doc: Fix typo 2016-05-01 21:34:41 -04:00
xml2.sgml doc: Various typo/grammar fixes 2014-08-30 10:52:36 -05:00
xoper.sgml doc: Various typo/grammar fixes 2014-08-30 10:52:36 -05:00
xplang.sgml
xtypes.sgml Support "expanded" objects, particularly arrays, for better performance. 2015-05-14 12:08:49 -04:00

<!-- doc/src/sgml/README.links -->

Linking within SGML documents can be confusing, so here is a summary:


Intra-document Linking
----------------------

<xref>
	use to get chapter/section number from the title of the target
	link, or xreflabel if defined at the target, or refentrytitle if target
        is a refentry;  has no close tag
	http://www.oasis-open.org/docbook/documentation/reference/html/xref.html

<link>
	use to supply text for the link, requires </link>
	http://www.oasis-open.org/docbook/documentation/reference/html/link.html

linkend=
	controls the target of the link/xref, required

endterm=
	for <xref>, allows the text of the link/xref to be taken from a
	different link target title


External Linking
----------------

<ulink>
	like <link>, but uses a URL (not a document target);  requires
	</ulink>; if no text is specified, the URL appears as the link
	text
	http://www.oasis-open.org/docbook/documentation/reference/html/ulink.html

url=
	used by <ulink> to specify the URL, required


Guidelines
----------

o  If you want to supply text, use <link>, else <xref>
o  Do not use text with <ulink> so the URL appears in printed output
o  Specific nouns like GUC variables, SQL commands, and contrib modules
   usually have xreflabels