# PostgreSQL 12 New Features

> GA source edition · 88 pages · 2019-10-11

---

LLMS index: [llms.txt](/en/llms.txt)

---

<div class="feature-book-intro"><p class="feature-book-kicker">WITH EXAMPLES · ENGLISH SOURCE EDITION</p><p>Explore the features, SQL examples, and compatibility changes documented by <a href="https://github.com/nori-shinoda">Noriyoshi Shinoda</a>.</p><div class="feature-book-actions"><a class="feature-read-button" href="01-about/">Start reading <span aria-hidden="true">→</span></a><a href="/en/_print/12/">Print this book</a><a href="https://github.com/nori-shinoda/documents/blob/1773200c5362476c4a549222b7d17fa91f546cae/postgresql12_ga_new_features_en_20191011-1.pdf">Original PDF on GitHub</a></div></div>

<div class="feature-source-note"><span class="feature-edition-badge">GA</span><span>2019-10-11</span><span>88 PDF pages</span><span>9 chapters</span></div>

## Contents

- [1 About This Document](/en/12/01-about/)
- [2 New Features Summary](/en/12/02-summary/)
- [3 Architecture](/en/12/03-architecture/)
- [4 SQL Statements](/en/12/04-sql/)
- [5 Configuration Parameters](/en/12/05-configuration/)
- [6 Utilities](/en/12/06-utilities/)
- [7 Contrib Modules](/en/12/07-modules/)
- [8 URL List](/en/12/08-url-list/)
- [9 Change History](/en/12/09-change-history/)

## Reference indexes

The opening chapter includes the first numbered table, [Table 1](/en/12/01-about/#pg12-tbl-1). The indexes below collect the book's other native numbered components.

<details class="feature-index"><summary>Tables</summary>

- [Table 1](/en/12/01-about/#pg12-tbl-1) — Version
- [Table 2](/en/12/01-about/#pg12-tbl-2) — Examples notation
- [Table 3](/en/12/01-about/#pg12-tbl-3) — Syntax rules
- [Table 4](/en/12/03-architecture/#pg12-tbl-4) — Added system catalogs
- [Table 5](/en/12/03-architecture/#pg12-tbl-5) — Added information\_schema catalog
- [Table 6](/en/12/03-architecture/#pg12-tbl-6) — System catalogs with columns added
- [Table 7](/en/12/03-architecture/#pg12-tbl-7) — System catalogs with columns deleted
- [Table 8](/en/12/03-architecture/#pg12-tbl-8) — System catalogs with column modified
- [Table 9](/en/12/03-architecture/#pg12-tbl-9) — pg\_stat\_progress\_cluster catalog
- [Table 10](/en/12/03-architecture/#pg12-tbl-10) — pg\_stat\_progress\_create\_index catalog
- [Table 11](/en/12/03-architecture/#pg12-tbl-11) — pg\_stat\_gssapi catalog
- [Table 12](/en/12/03-architecture/#pg12-tbl-12) — pg\_statistic\_ext\_data catalog
- [Table 13](/en/12/03-architecture/#pg12-tbl-13) — Modified parameters
- [Table 14](/en/12/03-architecture/#pg12-tbl-14) — Modified wait events
- [Table 15](/en/12/03-architecture/#pg12-tbl-15) — Environment variable PG\_COLORS settings
- [Table 16](/en/12/04-sql/#pg12-tbl-16) — JSON\/SQL functions
- [Table 17](/en/12/04-sql/#pg12-tbl-17) — Hyperbolic functions
- [Table 18](/en/12/05-configuration/#pg12-tbl-18) — Added parameters
- [Table 19](/en/12/05-configuration/#pg12-tbl-19) — shared\_memory\_type parameter value
- [Table 20](/en/12/05-configuration/#pg12-tbl-20) — Changed parameters
- [Table 21](/en/12/05-configuration/#pg12-tbl-21) — Parameters that default value has been changed
- [Table 22](/en/12/06-utilities/#pg12-tbl-22) — Added options
- [Table 23](/en/12/06-utilities/#pg12-tbl-23) — Added long\-name option

</details>

<details class="feature-index"><summary>Examples</summary>

- [Example 1](/en/12/02-summary/#pg12-eg-1) — CREATE TABLE statement in PostgreSQL 12
- [Example 2](/en/12/02-summary/#pg12-eg-2) — pg\_tablespace catalog in PostgreSQL 12
- [Example 3](/en/12/02-summary/#pg12-eg-3) — FOREIGN KEY constraint name in PostgreSQL 12
- [Example 4](/en/12/02-summary/#pg12-eg-4) — to\_date function in PostgreSQL 11
- [Example 5](/en/12/02-summary/#pg12-eg-5) — to\_date function in PostgreSQL 12
- [Example 6](/en/12/02-summary/#pg12-eg-6) — substring function in PostgreSQL 11
- [Example 7](/en/12/02-summary/#pg12-eg-7) — substring function in PostgreSQL 12
- [Example 8](/en/12/03-architecture/#pg12-eg-8) — Refer pg\_stat\_progress\_create\_index catalog
- [Example 9](/en/12/03-architecture/#pg12-eg-9) — Refer pg\_stat\_replication catalog
- [Example 10](/en/12/03-architecture/#pg12-eg-10) — Refer pg\_stat\_database catalog
- [Example 11](/en/12/03-architecture/#pg12-eg-11) — Deploy recovery\.conf file and start instance
- [Example 12](/en/12/03-architecture/#pg12-eg-12) — Instance startup log
- [Example 13](/en/12/03-architecture/#pg12-eg-13) — Output of pg\_controldata command
- [Example 14](/en/12/03-architecture/#pg12-eg-14) — Execute query
- [Example 15](/en/12/03-architecture/#pg12-eg-15) — Execution plan on PostgreSQL 11
- [Example 16](/en/12/03-architecture/#pg12-eg-16) — Execution plan of PostgreSQL 12
- [Example 17](/en/12/03-architecture/#pg12-eg-17) — jsonb type and GIN index
- [Example 18](/en/12/03-architecture/#pg12-eg-18) — DECLARE bytea
- [Example 19](/en/12/03-architecture/#pg12-eg-19) — PREPARE AS statement
- [Example 20](/en/12/03-architecture/#pg12-eg-20) — Refer pg\_am catalog
- [Example 21](/en/12/03-architecture/#pg12-eg-21) — CREATE TABLE statement
- [Example 22](/en/12/03-architecture/#pg12-eg-22) — \\d\+ command output
- [Example 23](/en/12/03-architecture/#pg12-eg-23) — \\d\+ command output
- [Example 24](/en/12/03-architecture/#pg12-eg-24) — \\dA command output
- [Example 25](/en/12/03-architecture/#pg12-eg-25) — Text search configurations
- [Example 26](/en/12/04-sql/#pg12-eg-26) — Alter system catalog
- [Example 27](/en/12/04-sql/#pg12-eg-27) — ALTER TYPE ADD VALUE statement in the transaction block
- [Example 28](/en/12/04-sql/#pg12-eg-28) — COMMIT AND CHAIN
- [Example 29](/en/12/04-sql/#pg12-eg-29) — Transaction attribute
- [Example 30](/en/12/04-sql/#pg12-eg-30) — COPY FROM WHERE statement
- [Example 31](/en/12/04-sql/#pg12-eg-31) — \\copy WHERE command
- [Example 32](/en/12/04-sql/#pg12-eg-32) — COPY FREEZE statement on PostgreSQL 12
- [Example 33](/en/12/04-sql/#pg12-eg-33) — Covering index for GiST index
- [Example 34](/en/12/04-sql/#pg12-eg-34) — Create MCV statistics
- [Example 35](/en/12/04-sql/#pg12-eg-35) — GENERATED column definition
- [Example 36](/en/12/04-sql/#pg12-eg-36) — Update directly for GENERATED column
- [Example 37](/en/12/04-sql/#pg12-eg-37) — Stored the GENERATED column value
- [Example 38](/en/12/04-sql/#pg12-eg-38) — GENERATED column information
- [Example 39](/en/12/04-sql/#pg12-eg-39) — Restriction of GENERATED column
- [Example 40](/en/12/04-sql/#pg12-eg-40) — Partitioned Table Creation and TABLESPACE Clause
- [Example 41](/en/12/04-sql/#pg12-eg-41) — FOR VALUES clause of partition table
- [Example 42](/en/12/04-sql/#pg12-eg-42) — Refer to partition table as reference table
- [Example 43](/en/12/04-sql/#pg12-eg-43) — Suppressing VACUUM on indexes
- [Example 44](/en/12/04-sql/#pg12-eg-44) — Truncate empty block at the end of the table
- [Example 45](/en/12/04-sql/#pg12-eg-45) — EXPLAIN \(SETTINGS ON\)
- [Example 46](/en/12/04-sql/#pg12-eg-46) — REINDEX CONCURRENTLY statement
- [Example 47](/en/12/04-sql/#pg12-eg-47) — reindexdb command
- [Example 48](/en/12/04-sql/#pg12-eg-48) — strict\_multi\_assignment setting
- [Example 49](/en/12/04-sql/#pg12-eg-49) — too\_many\_rows setting
- [Example 50](/en/12/04-sql/#pg12-eg-50) — Lock table
- [Example 51](/en/12/04-sql/#pg12-eg-51) — Skip VACUUM for locked table
- [Example 52](/en/12/04-sql/#pg12-eg-52) — Operation specification by ON\/OFF
- [Example 53](/en/12/04-sql/#pg12-eg-53) — Suppress VACUUM for index
- [Example 54](/en/12/04-sql/#pg12-eg-54) — Suppress truncation processing
- [Example 55](/en/12/04-sql/#pg12-eg-55) — WITH NOT MATERIALIZED
- [Example 56](/en/12/04-sql/#pg12-eg-56) — WITH MATERIALIZED
- [Example 57](/en/12/04-sql/#pg12-eg-57) — jsonb\_path\_query\_array function
- [Example 58](/en/12/04-sql/#pg12-eg-58) — pg\_partition\_tree function
- [Example 59](/en/12/04-sql/#pg12-eg-59) — pg\_partition\_root function
- [Example 60](/en/12/04-sql/#pg12-eg-60) — pg\_partition\_ancestors function
- [Example 61](/en/12/04-sql/#pg12-eg-61) — pg\_promote function
- [Example 62](/en/12/04-sql/#pg12-eg-62) — pg\_ls\_tmpdir function
- [Example 63](/en/12/04-sql/#pg12-eg-63) — pg\_ls\_archive\_statusdir function
- [Example 64](/en/12/04-sql/#pg12-eg-64) — date\_trunc function with timezone
- [Example 65](/en/12/04-sql/#pg12-eg-65) — Hyperbolic functions
- [Example 66](/en/12/04-sql/#pg12-eg-66) — Copy replication slot
- [Example 67](/en/12/05-configuration/#pg12-eg-67) — ssl\_library parameter
- [Example 68](/en/12/05-configuration/#pg12-eg-68) — Execution plan changes with each execution of EXECUTE statement
- [Example 69](/en/12/05-configuration/#pg12-eg-69) — Execution plan is cached
- [Example 70](/en/12/05-configuration/#pg12-eg-70) — Setting value force\_generic\_plan
- [Example 71](/en/12/05-configuration/#pg12-eg-71) — default\_with\_oids parameter
- [Example 72](/en/12/05-configuration/#pg12-eg-72) — wal\_sender\_timeout parameter
- [Example 74](/en/12/05-configuration/#pg12-eg-74) — PostgreSQL 11 log \(part\)
- [Example 75](/en/12/05-configuration/#pg12-eg-75) — PostgreSQL 12 log \(part\)
- [Example 76](/en/12/05-configuration/#pg12-eg-76) — wal\_level value check
- [Example 77](/en/12/06-utilities/#pg12-eg-77) — \-R parameter of pg\_basebackup command
- [Example 78](/en/12/06-utilities/#pg12-eg-78) — Usage of pg\_checksums command
- [Example 79](/en/12/06-utilities/#pg12-eg-79) — Integrity check
- [Example 80](/en/12/06-utilities/#pg12-eg-80) — Enable integrity check
- [Example 81](/en/12/06-utilities/#pg12-eg-81) — Abend an instance and enable integrity
- [Example 82](/en/12/06-utilities/#pg12-eg-82) — Display command execution status
- [Example 83](/en/12/06-utilities/#pg12-eg-83) — pg\_ctl logrotate command
- [Example 84](/en/12/06-utilities/#pg12-eg-84) — \-\-on\-conflict\-do\-nothing option
- [Example 85](/en/12/06-utilities/#pg12-eg-85) — \-rows\-per\-insert option
- [Example 86](/en/12/06-utilities/#pg12-eg-86) — \-\-exclude\-database option
- [Example 87](/en/12/06-utilities/#pg12-eg-87) — Additional comments
- [Example 88](/en/12/06-utilities/#pg12-eg-88) — pg\_rewind command
- [Example 89](/en/12/06-utilities/#pg12-eg-89) — pg\_upgrade command
- [Example 90](/en/12/06-utilities/#pg12-eg-90) — \\pset format csv command
- [Example 91](/en/12/06-utilities/#pg12-eg-91) — \\d command
- [Example 92](/en/12/06-utilities/#pg12-eg-92) — \\d command
- [Example 93](/en/12/06-utilities/#pg12-eg-93) — \\z command
- [Example 94](/en/12/06-utilities/#pg12-eg-94) — \\conninfo command
- [Example 95](/en/12/06-utilities/#pg12-eg-95) — \\set VERBOSITY command
- [Example 96](/en/12/06-utilities/#pg12-eg-96) — \\dP command
- [Example 97](/en/12/06-utilities/#pg12-eg-97) — \\h command
- [Example 98](/en/12/06-utilities/#pg12-eg-98) — Execute against old version
- [Example 99](/en/12/07-modules/#pg12-eg-99) — log\_level parameter
- [Example 100](/en/12/07-modules/#pg12-eg-100) — log\_settings parameter
- [Example 101](/en/12/07-modules/#pg12-eg-101) — JIT compilation information log
- [Example 102](/en/12/07-modules/#pg12-eg-102) — citext\_hash\_extended function
- [Example 103](/en/12/07-modules/#pg12-eg-103) — hstore\_hash\_extended function
- [Example 104](/en/12/07-modules/#pg12-eg-104) — pg\_stat\_statements\_reset function
- [Example 105](/en/12/07-modules/#pg12-eg-105) — options parameter

</details>

<details class="feature-index"><summary>Figures</summary>



</details>

## Source edition



The source chapter order, wording, examples, and publication credits are retained.
PDF page markers link the reading edition to the original document.
[Source identity and coverage](/sources/pg12-semantic.json) · [About the collection](/en/materials/)

---

Section pages:

- [About This Document](/en/12/01-about/): Purpose, audience, scope, software versions, notation, and responsibility statement.
- [New Features Summary](/en/12/02-summary/): The source document's overview of the release, benefits, and incompatibilities.
- [Architecture](/en/12/03-architecture/): Architecture, catalogs, replication, execution, I/O, roles, and server internals.
- [SQL Statements](/en/12/04-sql/): SQL syntax, data types, functions, optimizer behavior, and worked examples.
- [Configuration Parameters](/en/12/05-configuration/): Added, modified, removed, and default-value changes for configuration parameters.
- [Utilities](/en/12/06-utilities/): Changes to configure, initdb, backup, restore, upgrade, psql, and maintenance tools.
- [Contrib Modules](/en/12/07-modules/): Changes to contrib extensions and the modules covered by the source document.
- [URL List](/en/12/08-url-list/): The external references and release links listed by the source PDF.
- [Change History](/en/12/09-change-history/): The source document's revision history.
