PostgreSQL, often simply Postgres, is an object-relational database management system (ORDBMS) with an emphasis on extensibility and standards compliance. It can handle workloads ranging from small single-machine applications to large Internet-facing applications (or for data warehousing) with many concurrent users; on macOS Server, PostgreSQL is the default database; and it is also available for Microsoft Windows and Linux (supplied in most distributions).
PostgreSQL is ACID-compliant and transactional. PostgreSQL has updatable views and materialized views, triggers, foreign keys; supports functions and stored procedures, and other expandability.
PostgreSQL is developed by the PostgreSQL Global Development Group, a diverse group of many companies and individual contributors. It is free and open-source, released under the terms of the PostgreSQL License, a permissive software license. _Wiki
This update also fixes over 50 bugs that were reported in the last several months. Some of these issues affect only version 12, but may also affect all supported versions.
Some of these fixes include:
- Fix crash that occurs when
ALTER TABLEadds a column without a default value along with other changes that require a table rewrite
- Several fixes for
- Fix for
VACUUMthat would cause it to fail under a specific case involving a still-running transaction.
- Fix for a memory leak that could occur when
VACUUMruns on a GiST index.
- Fix for an error that occurred when running
CLUSTERon an expression index.
- Fix failure for
SET CONSTRAINTS ... DEFERREDon partitioned tables.
- Several fixes for the creation and dropping of indexes on partitioned tables.
- Fix for partition-wise joins that could lead to planner failures.
- Ensure that offset expressions in WINDOW clauses are processed when a query’s expressions are manipulated.
- Fix misbehavior of
bitshiftright()where it failed to zero out padding space in the last byte if the bit string length is not a multiple of 8. For how to correct your data, please see the “Updating” section.
- Ensure an empty string that is evaluated by the
position()functions returns 1, as per the SQL standard.
- Fix for a parallel query failure when it is unable to request a background worker.
- Fix crash triggered by a case involving a
- Display the correct error when a query tries to access a TOAST table.
- Allow encoding conversion to succeed on strings with output up to 1GB. Previously there was hard limit of 0.25GB on the input string.
- Ensure that temporary WAL and history files are removed at the end of archive recovery.
- Avoid failure in archive recovery if
recovery_min_apply_delaysettings during crash recovery.
- Several fixes for logical replication, including a failure when the publisher and subscriber had different REPLICA IDENTITY columns set.
- Correctly timestamp replication messages for logical decoding, which in the broken case would lead to
- Several fixes for libpq, including one that improves PostgreSQL 12 compatibility.
- Fix how a parallel restore handles foreign key constraints on partitioned tables to ensure they are not created too soon.
pg_dumpnow outputs similarly named triggers and RLS policies in order based on table name, instead of OID.
pg_rewindto not update the contents of
pg_controlwhen using the