For being "boring and stable" technology, Postgres 16 includes 200 features, which is on par with each of prior years releases. If you're looking for the full set of features it's available here - <a href="https://www.postgresql.org/docs/16/release-16.html" rel="nofollow">https://www.postgresql.org/docs/16/release-16.html</a>.<p>Personal favorites on the list include:<p>- load_balance_hosts, which is an improvement to libpq so you can load balance across multiple Postgres instances.<p>- Logical replication on standbys<p>- pg_stat_io which is a new view that shows IO details.
Postgresql is amazing but I must say the last few updates have been a bit disappointing.<p>Still waiting for automatic incremental updates for materialized views - been worked on for several years but still not released!<p><a href="https://wiki.postgresql.org/wiki/Incremental_View_Maintenance" rel="nofollow">https://wiki.postgresql.org/wiki/Incremental_View_Maintenanc...</a><p><a href="https://github.com/sraoss/pg_ivm">https://github.com/sraoss/pg_ivm</a>
My list of unexpected but very welcome changes:<p>- pg_hba.conf and pg_ident.conf can include other files<p>- Logical replication apply can use non-PK btree indexes<p>- Integer literals in non-decimal bases<p>- Underscores in numeric literals<p>- Subqueries in the FROM clause can omit aliases<p>- Addition and subtraction of timestamptz values<p>- pg_upgrade can override new cluster's locale and encoding
"parallel execution of the string_agg and array_agg aggregate functions" caught my eye - that feels like one of those minor improvements that might enable some pretty interesting new applications.<p>array_agg is particularly interesting, because it lets you implement patterns like this: <a href="https://til.simonwillison.net/sqlite/related-rows-single-query" rel="nofollow">https://til.simonwillison.net/sqlite/related-rows-single-que...</a>
COPY from files up to 300% faster<p>Load Balancing from client libs<p>Support for CPU acceleration using SIMD for both x86 and ARM architectures, including optimizations for processing ASCII and JSON strings<p>new pg_stat_io view that provides information on I/O statistics
Have to say, I find the SQL/JSON support in Postgres (jsonb) is probably the single biggest killer feature IMO. I can't believe MS (still) doesn't have an implementation (their SQL to JSON functions suck exponentially by comparison).<p>Nice to see the continued advancement and progression all around.
This is an exciting release to be sure. Very happy to see that the CPU improvements include ARM, diversity is good!<p>Given the current release pace, I'd love to have another upgrade path than `pg_dump | psql`. That would remove a great deal of friction in prod.
Bunch of interesting loosenings ups on logical replication. Allowing standbys to also have subscribers; great for fan out! Bunch of perf improvements (honestly a bunch of it is removing rather onerous limitations I didn't know about!) At the end there seems to be a developer flag for allowing seeming bidirectional replication too.
I am personally very excited to see that work on direct IO has started. It is a huge undertaking so I do not expect any production ready thing any time soon but nice to see that some code landed.