From 1b8574d3c04a052fe8fa86c44cfac7e1beff9de2 Mon Sep 17 00:00:00 2001 From: "Jonathan S. Katz" Date: Sun, 19 Aug 2018 22:59:33 -0400 Subject: [PATCH] First draft of PG11 release notes --- releases/11/en/release.en.md | 129 +++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 releases/11/en/release.en.md diff --git a/releases/11/en/release.en.md b/releases/11/en/release.en.md new file mode 100644 index 0000000..013a408 --- /dev/null +++ b/releases/11/en/release.en.md @@ -0,0 +1,129 @@ +# PostgreSQL 11 Released + +DD MONTH 2018 - The PostgreSQL Global Development Group today announced the +release of PostgreSQL 11, the latest version of the world's most advanced open +source database. + +PostgreSQL 11 builds on previous releases by further improving the overall +performance of the database system and adds more features for working with very +large databases with high computational workloads. This release makes +significant improvements to the table partitioning system, adds support for +stored procedures capable of transaction management, improves query parallelism +and adds parallelized data definition capabilities, and introduces just-in-time +(JIT) compilation for accelerating the execution of expressions in queries. + +##### HOLD FOR QUOTE FROM CORE TEAM MEMBER ABOUT RELEASE + +PostgreSQL was open sourced over two decades ago and has become the preferred +open source relational database for developers. The project continues to receive +recognition across the industry, and has been featured as the +"DBMS of the Year 2017" by DB-Engines and in the SD Times 2018 100. + +This is the first major release since PostgreSQL 10 was released on October 5, +2017. The PostgreSQL Global Development Group changed the release versioning +scheme for PostgreSQL 10. The next release for PostgreSQL 11 containing bug +fixes will be PostgreSQL 11.1, and the next major release with new features will +be PostgreSQL 12. + +## Increased Robustness and Performance for Partitioning + +PostgreSQL 11 adds the ability to partition data by a hash key, also known as +hash partitioning, adding to the current ability to partition data in PostgreSQL +by a list of values or by a range. PostgreSQL 11 also supports partitioned +tables that utilize the PostgreSQL foreign data wrapper, +[postgres_fdw](https://www.postgresql.org/docs/current/static/postgres-fdw.html), +enabling users to combine partitioning with data federation techniques. + +To help with managing partitions, PostgreSQL 11 introduces a catch-all default +partition for data that does not match a partition key, and the ability to +create primary keys, foreign keys, indexes, and triggers on partitions that are +passed down to all tables. PostgreSQL 11 also supports automatically moving rows +to the correct partition if the partition key for that row is updated +. +##### HOLD FOR QUOTE ABOUT PARTITIONING + +PostgreSQL 11 improves upon query performance when reading from partitions by +using a new partition elimination strategy. Additionally, PostgreSQL 11 now +supports the popular "upsert" feature on partitioned tables, which helps users +to simplify application code and reduce network overhead when interacting with +their data. + +## Transactions Supported in Stored Procedures + +Developers have been able to create user-defined functions in PostgreSQL for +over 20 years, but prior to PostgreSQL 11, these functions were unable to manage +their own transactions. PostgreSQL 11 adds SQL procedures that can perform full +transaction management within the body of a function, enabling developers to +create more advanced server-side applications, such as ones involving +incremental bulk data loading. + +SQL procedures can be created using the `CREATE PROCEDURE` command, executed +using the `CALL` command, and are supported in the server-side procedural +languages PL/pgSQL, PL/Perl, PL/Python, PL/Tcl, and the Server Programming +Interface (SPI) languages. + +[HOLD FOR QUOTE ABOUT SQL STORED PROCEDURES] + +## Enhanced Capabilities for Query Parallelism + +PostgreSQL 11 improves parallel query performance, with performance gains in +parallel sequential scans and hash joins along with more efficient scans of +partitioned data. PostgreSQL can now execute SELECT queries that use `UNION` in +parallel if the underlying queries are unable to be parallelized. + +PostgreSQL 11 adds parallelism to several data definition commands, notably for +the creation of B-tree indexes that are generated by executing the standard +`CREATE INDEX` command. Several data definition commands that either create +tables or materialized views from queries are also parallel capable now, +including the `CREATE TABLE .. AS`, `SELECT INTO`, and `CREATE MATERIALIZED VIEW`. + +[HOLD FOR QUOTE ABOUT PARALLELISM] + +## Just-in-Time (JIT) Compilation for Expressions + +PostgreSQL 11 introduces support for Just-In-Time (JIT) compilation to +accelerate the execution of certain expressions during query execution. JIT +expression compilation for PostgreSQL uses the LLVM project to speed up the +execution of expressions in WHERE clauses, target lists, aggregates, +projections, and some internal operations. + +[HOLD FOR QUOTE ABOUT JIT] + +To take advantage of JIT compilation, you will need to install the LLVM +dependencies enable JIT compilation in either your PostgreSQL settings file by +setting `jit = on` or from your PostgreSQL session by executing `SET jit = on`. + +## General User Experience Improvements + +The enhancements to the PostgreSQL relational database are not possible without +the feedback from an active user community and the hard work by the people who +work on PostgreSQL. Below highlights a few of the many features included in +PostgreSQL 11 designed to improve the overall user experience: + +- Removing the need for `ALTER TABLE .. ADD COLUMN .. DEFAULT ..` with a not +`NULL` default to rewrite the whole table on execution, which provides a +significant performance boost when running this command. +- "Covering indexes," which allows a user to add additional columns to an index +using the `INCLUDE` clause and are helpful for performing index-only scans, +especially on data types that are not indexable by B-tree indexes. +- Additional functionally for working with window functions, including allowing +`RANGE` to use `PRECEDING`/`FOLLOWING`, `GROUPS`, and frame exclusion +- The inclusion of the keywords "quit" and "exit" in the PostgreSQL command-line +interface to help make it easier to leave the command-line tool + +For a full list of features included in this release, please read the +[release notes](https://www.postgresql.org/docs/11/static/release-11.html), +which can be found at: + +[https://www.postgresql.org/docs/11/static/release-11.html](https://www.postgresql.org/docs/11/static/release-11.html) + +## About PostgreSQL + +PostgreSQL is the world's most advanced open source database, with a global +community of thousands of users, contributors, companies and organizations. The +PostgreSQL Project builds on over 30 years of engineering, starting at the +University of California, Berkeley, and has continued with an unmatched pace of +development. PostgreSQL's mature feature set not only matches top proprietary +database systems, but exceeds them in advanced database features, extensibility, +security and stability. Learn more about PostgreSQL and participate in our +community at [PostgreSQL.org](https://www.postgresql.org). -- 2.39.5