postgresql/doc/src/sgml
Tom Lane ef38a4d975 Add GROUP BY ALL.
GROUP BY ALL is a form of GROUP BY that adds any TargetExpr that does
not contain an aggregate or window function into the groupClause of
the query, making it exactly equivalent to specifying those same
expressions in an explicit GROUP BY list.

This feature is useful for certain kinds of data exploration.  It's
already present in some other DBMSes, and the SQL committee recently
accepted it into the standard, so we can be reasonably confident in
the syntax being stable.  We do have to invent part of the semantics,
as the standard doesn't allow for expressions in GROUP BY, so they
haven't specified what to do with window functions.  We assume that
those should be treated like aggregates, i.e., left out of the
constructed GROUP BY list.

In passing, wordsmith some existing documentation about GROUP BY,
and update some neglected synopsis entries in select_into.sgml.

Author: David Christensen <david@pgguru.net>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/CAHM0NXjz0kDwtzoe-fnHAqPB1qA8_VJN0XAmCgUZ+iPnvP5LbA@mail.gmail.com
2025-09-29 16:55:17 -04:00
..
func Doc: clean up documentation for new UUID functions. 2025-09-25 11:23:27 -04:00
images Fix commit 641a5b7a14 for "nbsp" output in SVG files 2024-11-26 13:08:13 -05:00
keywords doc: Update SQL keywords list to SQL:2023 2023-04-05 07:55:28 +02:00
ref Add GROUP BY ALL. 2025-09-29 16:55:17 -04:00
.gitignore Stop generating plain-text INSTALL instructions. 2023-12-22 13:32:15 -05:00
acronyms.sgml docs: Add acronym and glossary entries for I/O and AIO 2025-04-01 13:30:33 -04:00
advanced.sgml Doc: simplify the tutorial's window-function examples. 2025-01-21 14:43:21 -05:00
amcheck.sgml doc: TOAST not toast 2025-07-01 10:19:52 +02:00
appendix-obsolete-default-roles.sgml Fix file references inside some SGML comments 2022-06-20 14:33:41 +02:00
appendix-obsolete-pgreceivexlog.sgml Fix file references inside some SGML comments 2022-06-20 14:33:41 +02:00
appendix-obsolete-pgresetxlog.sgml Fix file references inside some SGML comments 2022-06-20 14:33:41 +02:00
appendix-obsolete-pgxlogdump.sgml Fix file references inside some SGML comments 2022-06-20 14:33:41 +02:00
appendix-obsolete-recovery-config.sgml Remove promote_trigger_file. 2022-11-29 12:08:38 +13:00
appendix-obsolete.sgml Revert "Rename contrib module basic_archive to basic_wal_module" 2023-01-26 09:13:39 +09:00
arch-dev.sgml Doc: Miscellaneous doc updates for MERGE. 2023-02-26 09:06:04 +00:00
archive-modules.sgml Add built-in ERROR handling for archive callbacks. 2024-04-02 22:28:11 -05:00
array.sgml Improve readability and error detection of array_in(). 2023-11-13 13:01:51 -05:00
auth-delay.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
auto-explain.sgml EXPLAIN: Always use two fractional digits for row counts. 2025-02-27 11:27:16 -05:00
backup-manifest.sgml doc: Standardize use of dashes in references to CRC and SHA. 2024-08-09 13:16:33 -05:00
backup.sgml Rename CHECKPOINT_IMMEDIATE to CHECKPOINT_FAST. 2025-07-11 11:51:25 -05:00
basebackup-to-shell.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
basic-archive.sgml Revert "Rename contrib module basic_archive to basic_wal_module" 2023-01-26 09:13:39 +09:00
bgworker.sgml Add option to bgworkers to allow the bypass of role login check 2023-10-12 09:24:17 +09:00
biblio.sgml doc: Add links to olsen93 and ong90 in bibliography 2025-02-21 11:28:42 +01:00
bki.sgml doc: TOAST not toast 2025-07-01 10:19:52 +02:00
bloom.sgml Show index search count in EXPLAIN ANALYZE, take 2. 2025-03-11 09:20:50 -04:00
brin.sgml docs: Merge separate chapters on built-in index AMs into one. 2024-04-05 10:34:04 -04:00
btree-gin.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
btree-gist.sgml Add support for sorted gist index builds to btree_gist 2025-04-03 13:46:35 +03:00
btree.sgml Add nbtree skip scan optimization. 2025-04-04 12:27:04 -04:00
catalogs.sgml Add max_retention_duration option to subscriptions. 2025-09-02 03:20:18 +00:00
charset.sgml Update GB18030 encoding from version 2000 to 2022 2025-09-24 13:26:05 +07:00
citext.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
client-auth.sgml Doc: clarify description of regexp fields in pg_ident.conf. 2025-07-15 18:53:00 -04:00
color.sgml Add color support for new frontend detail/hint messages 2022-04-11 17:36:44 +02:00
config.sgml Hide duplicate names from extension views 2025-09-15 07:30:31 +02:00
contrib-spi.sgml Move contrib/spi testing from core regression tests to contrib/spi. 2025-04-08 19:12:03 -04:00
contrib.sgml pg_overexplain: Additional EXPLAIN options for debugging. 2025-03-26 13:52:21 -04:00
cube.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
custom-rmgr.sgml docs: Consolidate into new "WAL for Extensions" chapter. 2024-04-15 15:57:13 -04:00
custom-scan.sgml Doc: Improve documentation for creating custom scan paths. 2023-08-30 17:45:00 +09:00
datatype.sgml Adjust some table column widths in PDF 2025-08-13 17:40:13 +02:00
datetime.sgml Seek zone abbreviations in the IANA data before timezone_abbreviations. 2025-01-16 14:11:19 -05:00
dblink.sgml dblink: SCRAM authentication pass-through 2025-03-26 10:49:23 +01:00
ddl.sgml Restrict virtual columns to use built-in functions and types 2025-06-25 09:56:49 +02:00
dfunc.sgml Remove traces of support for Sun Studio compiler 2025-09-12 07:39:05 +02:00
dict-int.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
dict-xsyn.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
dml.sgml Add OLD/NEW support to RETURNING in DML queries. 2025-01-16 14:57:35 +00:00
docguide.sgml doc: Remove dead link to NewbieDoc Docbook Guide 2025-06-24 11:49:37 +02:00
earthdistance.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
ecpg.sgml Fix assorted bugs in ecpg's macro mechanism. 2024-04-16 12:31:42 -04:00
errcodes.sgml Doc: remove now-redundant align specifications in colspecs. 2020-05-06 15:58:23 -04:00
event-trigger.sgml doc: Remove event trigger firing matrix 2024-11-06 13:43:17 +01:00
extend.sgml Make "directory" setting work with extension_control_path 2025-05-02 16:35:48 +02:00
external-projects.sgml doc: Replace list of drivers and PLs with wiki link 2023-08-23 14:13:07 +02:00
fdwhandler.sgml Improve ExplainState type handling in header files 2025-09-15 11:04:10 +02:00
features.sgml Add XMLText function (SQL/XML X038) 2023-11-06 09:38:29 +01:00
file-fdw.sgml file_fdw: Add REJECT_LIMIT option to file_fdw. 2024-11-20 23:53:19 +09:00
filelist.sgml Split func.sgml into more manageable pieces 2025-08-04 09:04:56 -04:00
fuzzystrmatch.sgml Add support for Daitch-Mokotoff Soundex in contrib/fuzzystrmatch. 2023-04-07 17:32:26 -04:00
generate-errcodes-table.pl Update copyright for 2025 2025-01-01 11:21:55 -05:00
generate-keywords-table.pl Update copyright for 2025 2025-01-01 11:21:55 -05:00
generate-targets-meson.pl Update copyright for 2025 2025-01-01 11:21:55 -05:00
generic-wal.sgml docs: Consolidate into new "WAL for Extensions" chapter. 2024-04-15 15:57:13 -04:00
geqo.sgml Doc: add XML ID attributes to <sectN> and <varlistentry> tags. 2023-01-09 15:08:24 -05:00
gin.sgml Add cross-type comparisons to contrib/btree_gin. 2025-07-03 16:24:31 -04:00
gist.sgml Rename gist stratnum support function 2025-06-02 08:41:27 +02:00
glossary.sgml Glossary: improve definition of "relation" 2025-08-28 18:16:08 +02:00
hash.sgml docs: Merge separate chapters on built-in index AMs into one. 2024-04-05 10:34:04 -04:00
high-availability.sgml Improve error message when standby does accept connections. 2025-04-02 15:13:01 +09:00
history.sgml doc: Clarify project naming 2025-04-07 00:03:18 +02:00
hstore.sgml Use @extschema:name@ notation in contrib transform modules. 2025-01-09 15:16:56 -05:00
indexam.sgml doc: Inform about aminsertcleanup optional NULLness 2025-07-22 14:34:15 +09:00
indextypes.sgml docs: Merge separate chapters on built-in index AMs into one. 2024-04-05 10:34:04 -04:00
indices.sgml Add nbtree skip scan optimization. 2025-04-04 12:27:04 -04:00
info.sgml Don't use SGML empty tags 2017-10-17 15:10:33 -04:00
information_schema.sgml Add support for NOT ENFORCED in CHECK constraints 2025-01-11 10:52:30 +01:00
install-binaries.sgml Expand installation documentation to cover binary installations 2020-10-06 14:15:32 +02:00
installation.sgml Remove traces of support for Sun Studio compiler 2025-09-12 07:39:05 +02:00
intagg.sgml doc, intagg: fix one-to-many mention to many-to-many 2023-12-07 19:36:52 -05:00
intarray.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
intro.sgml doc: add links to Postgres features intro 2023-10-28 14:02:46 -04:00
isn.sgml contrib/isn: Make weak mode a GUC setting, and fix related functions. 2025-03-16 13:45:48 -04:00
jit.sgml EXPLAIN: Always use two fractional digits for row counts. 2025-02-27 11:27:16 -05:00
json.sgml Document strange jsonb sort order for empty top level arrays 2025-01-03 10:36:30 -05:00
keywords.sgml Allow most keywords to be used as column labels without requiring AS. 2020-09-18 16:46:36 -04:00
legal.sgml Align organization wording in copyright statement 2025-05-16 11:20:07 -04:00
libpq.sgml libpq: Add "servicefile" connection option 2025-07-13 16:52:19 +09:00
limits.sgml Document limit on the number of out-of-line values per table 2024-08-20 13:36:33 +07:00
lo.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
lobj.sgml libpq: Deprecate pg_int64. 2025-03-25 21:40:00 +13:00
logical-replication.sgml Message wording improvements 2025-08-25 23:15:24 +02:00
logicaldecoding.sgml Doc: Fix typo in logicaldecoding.sgml. 2025-08-22 05:29:36 +00:00
ltree.sgml Use @extschema:name@ notation in contrib transform modules. 2025-01-09 15:16:56 -05:00
maintenance.sgml Document pg_get_multixact_members(). 2025-07-01 13:54:38 -05:00
Makefile Teach doc/src/sgml/Makefile about the new func/*.sgml files. 2025-09-25 11:09:26 -04:00
manage-ag.sgml doc: improve tablespace example query and link to helper funcs. 2024-11-01 15:54:16 -04:00
meson.build Update copyright for 2025 2025-01-01 11:21:55 -05:00
mk_feature_tables.pl Make all Perl warnings fatal 2023-12-29 18:20:00 +01:00
monitoring.sgml Add backup_type column to pg_stat_progress_basebackup. 2025-08-05 10:50:45 -07:00
mvcc.sgml doc: fix typo in mvcc clarification in commit 2fa255ce9b 2024-11-04 09:24:58 -05:00
nls.sgml doc: Fix some typos and grammar 2023-10-25 09:40:55 +09:00
notation.sgml doc: clarify syntax notation, particularly parentheses 2022-02-02 21:53:52 -05:00
oauth-validators.sgml oauth: Improve validator docs on interruptibility 2025-03-19 16:58:06 +13:00
oid2name.sgml |--- gitweb subject length limit ----------------|-email limit-| 2023-10-27 11:06:10 -04:00
pageinspect.sgml Fix whitespace 2025-07-30 09:51:45 +02:00
parallel.sgml Doc: InitPlans aren't parallel-restricted any more. 2024-09-26 10:37:51 -04:00
passwordcheck.sgml Add passwordcheck.min_password_length. 2025-01-07 15:06:40 -06:00
perform.sgml Add nbtree skip scan optimization. 2025-04-04 12:27:04 -04:00
pgbuffercache.sgml doc: Add missing index entries and fix title formatting in pg_buffercache docs. 2025-07-24 11:43:20 +09:00
pgcrypto.sgml Doc: fix PDF "contents ... exceed the available area" warnings. 2025-04-06 16:27:39 -04:00
pgfreespacemap.sgml doc: Correct description of values used in FSM for indexes 2025-03-27 10:20:41 +09:00
pglogicalinspect.sgml Standardize LSN formatting by zero padding 2025-07-07 13:57:43 +02:00
pgoverexplain.sgml doc: Add note about how to use pg_overexplain. 2025-07-17 10:25:59 -05:00
pgprewarm.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
pgrowlocks.sgml pgrowlocks: change lock mode output labels for consistency 2023-09-26 17:41:48 -04:00
pgstatstatements.sgml pg_stat_statements: Add counters for generic and custom plans 2025-07-31 11:37:37 +09:00
pgstattuple.sgml doc: explain pgstatindex fragmentation 2025-06-30 11:30:56 +02:00
pgsurgery.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
pgtrgm.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
pgvisibility.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
pgwalinspect.sgml Standardize LSN formatting by zero padding 2025-07-07 13:57:43 +02:00
planstats.sgml EXPLAIN: Always use two fractional digits for row counts. 2025-02-27 11:27:16 -05:00
plhandler.sgml doc: use wording "restore" instead of "reload" of dumps 2022-07-21 14:55:23 -04:00
plperl.sgml Block environment variable mutations from trusted PL/Perl. 2024-11-11 06:23:43 -08:00
plpgsql.sgml Allow => syntax for named cursor arguments in plpgsql. 2025-03-03 18:00:13 -05:00
plpython.sgml PL/Python: Add event trigger support 2025-08-21 09:21:11 +02:00
pltcl.sgml Improve PL/Tcl's method for choosing Tcl names of procedures. 2024-07-05 14:14:42 -04:00
postgres-fdw.sgml Revert "postgres_fdw: Inherit the local transaction's access/deferrable modes." 2025-06-08 17:30:00 +09:00
postgres.sgml Add support for OAUTHBEARER SASL mechanism 2025-02-20 16:25:17 +01:00
problems.sgml doc: use more accurate URL for bug reporting 2024-11-04 15:08:01 -05:00
protocol.sgml libpq: Be strict about cancel key lengths 2025-08-22 14:39:29 +03:00
queries.sgml Add GROUP BY ALL. 2025-09-29 16:55:17 -04:00
query.sgml doc: Add example file for COPY 2025-07-17 00:21:18 +02:00
rangetypes.sgml Revert 29854ee8d1 due to buildfarm failures 2021-06-15 21:44:40 +03:00
README.links doc: mention <link> can be inside of <command>, but not <xref> 2021-04-22 16:01:17 -04:00
README.non-ASCII doc: update guidelines on non-ASCII characters in docs 2025-05-03 14:45:26 -04:00
reference.sgml pg_createsubscriber: creates a new logical replica from a standby server 2024-03-25 12:42:47 +01:00
regress.sgml Put PG_TEST_EXTRA doc items back in alphabetical order 2025-08-05 20:22:32 +02:00
release-19.sgml Stamp HEAD as 19devel. 2025-06-29 22:28:10 -04:00
release.sgml Stamp HEAD as 19devel. 2025-06-29 22:28:10 -04:00
replication-origins.sgml Refer to replication origin roident as "ID" in user facing messages and docs 2022-08-18 08:57:13 +07:00
rowtypes.sgml Add RETURNING support to MERGE. 2024-03-17 13:58:59 +00:00
rules.sgml Allow to log raw parse tree. 2025-09-06 07:49:51 +09:00
runtime.sgml Give up on running with NetBSD/OpenBSD's default semaphore settings. 2025-04-29 17:27:52 -04:00
seg.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
sepgsql.sgml doc: TOAST not toast 2025-07-01 10:19:52 +02:00
sourcerepo.sgml Remove distprep 2023-11-06 15:18:04 +01:00
sources.sgml Provide more-specific error details/hints for function lookup failures. 2025-09-16 12:17:02 -04:00
spgist.sgml docs: Merge separate chapters on built-in index AMs into one. 2024-04-05 10:34:04 -04:00
spi.sgml Don't bother checking the result of SPI_connect[_ext] anymore. 2024-09-09 12:18:34 -04:00
sslinfo.sgml Revert "Add notBefore and notAfter to SSL cert info display" 2024-03-22 22:58:41 +01:00
start.sgml doc: clarify create database in start docs uses command line 2024-08-19 19:22:10 -04:00
storage.sgml Adjust some table column widths in PDF 2025-08-13 17:40:13 +02:00
stylesheet-common.xsl Fix documentation build with older docbook-xsl 2024-02-08 11:38:46 +01:00
stylesheet-fo.xsl Improve PDF documentation margins 2025-08-13 15:50:14 +02:00
stylesheet-html-common.xsl Fix documentation build with older docbook-xsl 2024-02-08 11:38:46 +01:00
stylesheet-html-nochunk.xsl docs: html: load stylesheet via custom.css.source 2023-04-04 21:29:45 -07:00
stylesheet-man.xsl Now that we have non-Latin1 SGML detection, restore Latin1 chars 2024-12-03 17:09:49 -05:00
stylesheet-speedup-common.xsl doc: Further speed improvements for HTML XSLT build 2016-12-22 15:41:44 -05:00
stylesheet-speedup-xhtml.xsl doc: Further speed improvements for HTML XSLT build 2016-12-22 15:41:44 -05:00
stylesheet-text.xsl Fix XML namespace declarations 2022-02-15 11:13:49 +01:00
stylesheet.css doc: Make HTML ids discoverable 2023-04-13 10:16:33 +02:00
stylesheet.css.xml docs: html: load stylesheet via custom.css.source 2023-04-04 21:29:45 -07:00
stylesheet.xsl docs: html: load stylesheet via custom.css.source 2023-04-04 21:29:45 -07:00
syntax.sgml doc: Missing markup, punctuation and wordsmithing 2024-10-02 14:50:56 +02:00
system-views.sgml doc: Clarify meaning of "idle" in idle_replication_slot_timeout. 2025-07-11 08:44:32 +09:00
tableam.sgml doc: Add minimal C and SQL example to add a custom table AM handler 2024-10-07 15:47:40 +09:00
tablefunc.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
tablesample-method.sgml Use the correct article for abbreviations 2021-06-11 13:38:04 +12:00
targets-meson.txt Update copyright for 2025 2025-01-01 11:21:55 -05:00
tcn.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
test-decoding.sgml Standardize LSN formatting by zero padding 2025-07-07 13:57:43 +02:00
textsearch.sgml doc: Clean up title case use 2025-06-16 11:43:52 +02:00
trigger.sgml Doc: improve description of which role runs a trigger. 2025-06-05 15:24:15 -04:00
tsm-system-rows.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
tsm-system-time.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
typeconv.sgml Provide more-specific error details/hints for function lookup failures. 2025-09-16 12:17:02 -04:00
unaccent.sgml unaccent: Add support for quoted translated characters 2023-09-20 12:29:36 +09:00
user-manag.sgml doc: Missing markup, punctuation and wordsmithing 2024-10-02 14:50:56 +02:00
uuid-ossp.sgml Doc: Update ulinks to RFC documents to avoid redirect 2024-04-10 13:53:25 +02:00
vacuumlo.sgml doc: remove xreflabels from commits 75fcdd2ae2 and 85af628da5 2020-06-11 18:19:25 -04:00
version.sgml.in meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
wal-for-extensions.sgml docs: Consolidate into new "WAL for Extensions" chapter. 2024-04-15 15:57:13 -04:00
wal.sgml Re-add GUC track_wal_io_timing 2025-02-26 09:49:59 +09:00
xact.sgml Replace BackendIds with 0-based ProcNumbers 2024-03-03 19:38:22 +02:00
xaggr.sgml Remove trailing whitespace from *.sgml files. 2022-04-20 11:04:49 -04:00
xfunc.sgml Fix documentation for shmem_startup_hook. 2025-09-09 14:35:30 -05:00
xindex.sgml Rename gist stratnum support function 2025-06-02 08:41:27 +02:00
xml2.sgml Describe each contrib module in its SGML section title 2023-01-20 20:01:59 +01:00
xmltools_dep_wrapper meson: docs: Add xml{lint,proc} wrapper to collect dependencies 2022-10-05 09:56:05 -07:00
xoper.sgml doc: Some copy-editing around prefix operators 2025-06-30 10:38:43 +02:00
xplang.sgml Improve <xref> vs. <command> formatting in the documentation 2020-10-03 16:40:02 +02:00
xtypes.sgml doc: Clean up title case use 2019-09-08 10:27:29 +02:00

<!-- doc/src/sgml/README.non-ASCII -->

Representation of non-ASCII characters
--------------------------------------

Find non-ASCII characters using:

        grep --recursive --color='auto' -P '[\x80-\xFF]' .

Convert to HTML4 named entity (&) escapes
-----------------------------------------

We support several output formats:

*  html (supports all Unicode characters)
*  man (supports all Unicode characters)
*  pdf (supports only Latin-1 characters)
*  info

While some output formatting tools support all Unicode characters,
others only support Latin-1 characters.  Specifically, the PDF rendering
engine can only display Latin-1 characters;  non-Latin-1 Unicode
characters are displayed as "###".

Therefore, in the SGML files, we can only use Latin-1 characters.  We
can use UTF8 representations of Latin-1 characters, or HTML entities of
Latin-1 characters, e.g., &Aacute;lvaro.

Do not use UTF numeric character escapes (&#nnn;).

When building the PDF docs, problem characters will appear as warnings.

HTML entities
        official:      http://www.w3.org/TR/html4/sgml/entities.html
        one page:      http://www.zipcon.net/~swhite/docs/computers/browsers/entities_page.html
        other lists:   http://www.zipcon.net/~swhite/docs/computers/browsers/entities.html
                       http://www.zipcon.net/~swhite/docs/computers/browsers/entities_page.html
                       https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references