PostgreSQL is a powerful, open source object-relational database system. It has more than 15 years of active development and a proven architecture that has earned it a strong reputation for reliability, data integrity, and correctness.
It is fully ACID compliant, has full support for foreign keys, joins, views, triggers, and stored procedures (in multiple languages). It includes most SQL:2008 data types, including INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, and TIMESTAMP.
Fix failure to reset libpq's state fully between connection attempts.
Fix INSERT ... ON CONFLICT UPDATE through a view that isn't just SELECT * FROM.
Ensure that updates to the relfrozenxid and relminmxid values for “nailed” system catalogs are processed in a timely fashion.
Fix case where a freshly-promoted standby crashes before having completed its first post-recovery checkpoint.
Avoid emitting a bogus WAL record when recycling an all-zero btree page.
During WAL replay, guard against corrupted record lengths exceeding 1GB.
When ending recovery, delay writing the timeline history file as long as possible.
Improve performance of WAL replay for transactions that drop many relations.
Improve performance of lock releasing in standby server WAL replay.
Make logical WAL senders report streaming state correctly.
Ensure that a snapshot is provided when executing data type input functions in logical replication subscribers.
Fix bugs in snapshot handling during logical decoding, allowing wrong decoding results in rare cases.
Add subtransaction handling in logical-replication table synchronization workers.
Ensure a table's cached index list is correctly rebuilt after an index creation fails partway through.
Fix mishandling of empty uncompressed posting list pages in GIN indexes.
Pad arrays of unnamed POSIX semaphores to reduce cache line sharing.
Ensure that a process doing a parallel index scan will respond to signals.
Ensure that VACUUM will respond to signals within btree page deletion loops.
Fix hash-join costing mistake introduced with inner_unique optimization.
Fix misoptimization of equivalence classes involving composite-type columns.
Fix planner to avoid “ORDER/GROUP BY expression not found in targetlist” errors in some queries with set-returning functions.
Fix handling of partition keys whose data type uses a polymorphic btree operator class, such as arrays.
Fix SQL-standard FETCH FIRST syntax to allow parameters ($n), as the standard expects.
Remove undocumented restriction against duplicate partition key columns.
Disallow temporary tables from being partitions of non-temporary tables.
Fix EXPLAIN's accounting for resource usage, particularly buffer accesses, in parallel workers.
Fix SHOW ALL to show all settings to roles that are members of pg_read_all_settings, and also allow such roles to see source filename and line number in the pg_settings view.
Fix failure to schema-qualify some object names in getObjectDescription and getObjectIdentity output.
Fix CREATE AGGREGATE type checking so that parallelism support functions can be attached to variadic aggregates.
Widen COPY FROM's current-line-number counter from 32 to 64 bits.
Allow replication slots to be dropped in single-user mode.
Fix incorrect results from variance(int4) and related aggregates when run in parallel aggregation mode.
Process TEXT and CDATA nodes correctly in xmltable() column expressions.
Cope with possible failure of OpenSSL's RAND_bytes() function.
Fix libpq's handling of some cases where hostaddr is specified.
Add a string freeing function to ecpg's pgtypes library, so that cross-module memory management problems can be avoided on Windows.
Fix ecpg's support for long long variables on Windows, as well as other platforms that declare strtoll/strtoull nonstandardly or not at all.
Fix misidentification of SQL statement type in PL/pgSQL, when a rule change causes a change in the semantics of a statement intra-session.
Fix password prompting in client programs so that echo is properly disabled on Windows when stdin is not the terminal.
Further fix mis-quoting of values for list-valued GUC variables in dumps.
Fix pg_dump's failure to dump REPLICA IDENTITY properties for constraint indexes.
Make pg_upgrade check that the old server was shut down cleanly.
Fix contrib/hstore_plperl to look through Perl scalar references, and to not crash if it doesn't find a hash reference where it expects one.
Fix crash in contrib/ltree's lca() function when the input array is empty.
Fix various error-handling code paths in which an incorrect error code might be reported.
Rearrange makefiles to ensure that programs link to freshly-built libraries (such as libpq.so) rather than ones that might exist in the system library directories.
Update time zone data files to tzdata release 2018e for DST law changes in North Korea, plus historical corrections for Czechoslovakia.