Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kFHOM-00023Q-Gt for pgsql-hackers@arkaria.postgresql.org; Mon, 07 Sep 2020 13:41:06 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kFHNp-0000og-J3 for pgsql-hackers@arkaria.postgresql.org; Mon, 07 Sep 2020 13:40:33 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kFHNp-0000oZ-3y for pgsql-hackers@lists.postgresql.org; Mon, 07 Sep 2020 13:40:33 +0000 Received: from mail-il1-x143.google.com ([2607:f8b0:4864:20::143]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1kFHNm-0002G7-6b for pgsql-hackers@postgresql.org; Mon, 07 Sep 2020 13:40:31 +0000 Received: by mail-il1-x143.google.com with SMTP id l4so12551525ilq.2 for ; Mon, 07 Sep 2020 06:40:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telsasoft-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=yaRbdRq3/sMWJHVnwv/rPBwnrcCSH+2XbXLWfW5Gg+g=; b=VeOwhJnq51QoHu+PZuGmWJpdhbKDZZlsaPPqOtGjZcOneeCzJPWxfu14do4zoRn7Pw 4JJIoCa8Fe9LRvb9Fcz9BlfadctWaF92/oShtHBJnc77/0ZW1SIddi8IgfuLZuEEM6Q1 df+CtbpuS4YTbT7CvpJEkoAAMu5Svd3438vBVVyc97aLHRzE1rifh4gildCnyVSa2XHK A7P2zjUGiDN4sKbr4WA+8K+z+YOgebA4Bdh3qZPpMhf9p7nApE+GeU9Pg4pP9uSb+uHH fM4MftNaaU6BYlRJJYxpESyXOJRBh6GdCZ2JEMix/7rgaZRupUfEjQ7O0tmHabsR6rTN Z1rA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=yaRbdRq3/sMWJHVnwv/rPBwnrcCSH+2XbXLWfW5Gg+g=; b=VHQmGMbiq/RdxYPf/26arB6fZi7cT9kmDpDqBpk3jY+YENDddQQIyuk3jGjHymfY0+ uCH9zIVJ5fHtsD2lhBvEF8D54G+5ybTefxC3rj2hUIgSmHTn3Ulgo/EAfYnn3fyskOJ5 HiSi8cjk/08GLNqT8ITIuSvy+el9CEdeOkYhHPWdorco4iBXpHRc+fNRdo0ZiZv7gO6M Afz1GGMLVR4Qc34G2gEUu9NIHwLM8T5ABpwCd6ae+se21QgddO7xUBvVn8MNs0yVRjPS yhv+SmsxqbX1imRMGluZm1wsjihk8Z9g4N0OgJddHCy2KuPwJHqixLAE5I083IobA+9R tU+w== X-Gm-Message-State: AOAM533hD1wzwGBgsYRi5KIK75Se8LavKOM9T4A/hAUgO4ZBWWc1pul0 c2nPPWrBpw4lNOjzw2pdEoOCSA== X-Google-Smtp-Source: ABdhPJx7Tiuj6ClYRBM/U3Csu07P7+Tjd0QSgv6WjjGaYzb2QsBj3LdkxVrbTILJal+CX977I/aKNA== X-Received: by 2002:a92:77d4:: with SMTP id s203mr18342826ilc.136.1599486028951; Mon, 07 Sep 2020 06:40:28 -0700 (PDT) Received: from pryzbyj.telsasoft (charmander.telsasoft.com. [50.244.222.1]) by smtp.gmail.com with ESMTPSA id u81sm8806348ilc.52.2020.09.07.06.40.27 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 07 Sep 2020 06:40:28 -0700 (PDT) Received: by pryzbyj.telsasoft (Postfix, from userid 1000) id AE88C800702; Mon, 7 Sep 2020 08:40:26 -0500 (CDT) Date: Mon, 7 Sep 2020 08:40:26 -0500 From: Justin Pryzby To: Peter Eisentraut , Peter Geoghegan Cc: Amit Kapila , Bruce Momjian , pgsql-hackers@postgresql.org Subject: Re: PG 13 release notes, first draft Message-ID: <20200907134026.GC7158@telsasoft.com> References: <08a50ae9-89fe-a29b-c4e4-0fb5033c2f06@2ndquadrant.com> <20200514211006.GM18456@telsasoft.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="xgyAXRrhYN0wYx8y" Content-Disposition: inline In-Reply-To: <20200514211006.GM18456@telsasoft.com> User-Agent: Mutt/1.9.4 (2018-02-28) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --xgyAXRrhYN0wYx8y Content-Type: text/plain; charset=us-ascii Content-Disposition: inline There's some obvious improvements for which I include a patch. >Add alternate version of jsonb_setI() with special NULL handling (Andrew Dunstan) >The new function, jsonb_set_lax(), allows null new values to either set the specified key to JSON null, delete the key, raise exception, or ignore the operation. jsonb_set() raise *an* exception new null values? >IS 'return_target' CLEAR? I haven't used these before, but following the examples, it seems to return the "target" argument, unchanged. | Add function min_scale() that returns the number of digits to the right the decimal point that is required to represent the numeric value with full precision (Pavel Stehule) right *of* that *are* required ? |The old function names were kept for backward compatibility. DO WE HAVE NEW NAMES? => I think the docs are clear: > In releases of PostgreSQL before 13 there was no xid8 type, so variants of these functions were provided that used bigint to represent a 64-bit XID, with a correspondingly distinct snapshot data type txid_snapshot. These older functions have txid in their names. They are still supported for backward compatibility, but may be removed from a future release. See Table 9.76.... > This improves performance for queries that access many object. The internal List API has also been improved. many objects* |Allow skipping of WAL for full table writes if wal_level is minimal (Kyotaro Horiguchi) Allow WAL writes to be skipped... And: this is not related to full_page_writes. | Enable Unix-domain sockets support on Windows (Peter Eisentraut) Enable support for .. | Improve the performance when replaying DROP DATABASE commands when many tablespaces are in use (Fujii Masao) s/the// |Allow a sample of statements to be logged (Adrien Nayrat) Allow logging a sample of statements |Allow WAL receivers use a temporary replication slot if a permanent one is not specified (Peter Eisentraut, Sergei Kornilov) *to* use | Add leader_pid to pg_stat_activity to report parallel worker ownership (Julien Rouhaud) s/ownership/leader/ ? |Allow WAL recovery to continue even if invalid pages are referenced (Fujii Masao) remove "WAL" or say: >Allow recovery to continue even if invalid pages are referenced by WAL (Fujii Masao) A few things I have't fixed in my patch: |Previously, this value was adjusted before effecting the number of concurrent requests. This value is now used directly. Conversion of old values to new ones can be done using: |SELECT round(sum(OLD / n::float)) FROM generate_series(1, OLD) s(n); I think the round() should be aliased, "AS new". I think "before effecting" is confusing, maybe say: | Previously, the effective value was computed internally from the user-supplied parameter... |Allow partitioned tables to be logically replicated via publications (Amit Langote) |Previously, partitions had to be replicated individually. Now partitioned tables can be published explicitly causing all partitions to be automatically published. Addition/removal of partitions from partitioned tables are automatically added/removed from publications. The CREATE PUBLICATION option publish_via_partition_root controls whether changes to partitions are published as their own or their ancestor's. => "causing any future partitions to be automatically published". "addition/removal .. are automatically" isn't right |Implement incremental sorting (James Coleman, Alexander Korotkov, Tomas Vondra) |If a result is already sorted by several leading keys, this allows for batch sorting of additional trailing keys because the previous keys are already equal. This is controlled by enable_incremental_sort. s/several/one or more/ remove "additional" ? remove "batch" ? maybe "of ONLY trailing keys" |Allow inserts to trigger autovacuum activity (Laurenz Albe, Darafei Praliaskouski) |This new behavior reduces the work necessary when the table needs to be frozen and allows pages to be set as all-visible. All-visible pages allow index-only scans to access fewer heap rows. There's a lot of "allow" here, but it sounds like relaxing a restriction when actually this is a new functionality. Maybe: | Allow autovacuum to be triggered by INSERTs. | ..and allows autovacuum to set pages as all-visible. I already mentioned a couple things back in May that still stand out;: |Add jsonpath .datetime() method (Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov) |This allows json values to be converted to timestamps, which can then be processed in jsonpath expressions. This also adds jsonpath functions that support time zone-aware output. timezone-aware or time-zone-aware, if you must. > Allow vacuum commands run by vacuumdb to operate in parallel mode (Masahiko Sawada) => I think this is still going to be lost/misunderstood/confuse some people. vacuumdb already supports -j. This allows it to run vacuum(parallel N). So maybe say "...to process indexes in parallel". -- Justin --xgyAXRrhYN0wYx8y Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0001-fixes-release-notes.patch" From 3f45433193d8fd3e2110df23e56a2ce31d232243 Mon Sep 17 00:00:00 2001 From: Justin Pryzby Date: Sun, 6 Sep 2020 22:10:11 -0500 Subject: [PATCH] fixes release notes --- doc/src/sgml/release-13.sgml | 38 +++++++++++++++++------------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/doc/src/sgml/release-13.sgml b/doc/src/sgml/release-13.sgml index e27b044408..f4cc65178a 100644 --- a/doc/src/sgml/release-13.sgml +++ b/doc/src/sgml/release-13.sgml @@ -731,8 +731,8 @@ Author: Noah Misch --> - Allow skipping of WAL for full table writes if WAL writes to be skipped during a transaction + which creates or rewrites a relations if is minimal (Kyotaro Horiguchi) @@ -753,8 +753,8 @@ Author: Peter Eisentraut --> - Enable Unix-domain sockets - support on Windows (Peter Eisentraut) + Enable support for Unix-domain sockets + on Windows (Peter Eisentraut) @@ -765,7 +765,7 @@ Author: Fujii Masao --> - Improve the performance when replaying DROP DATABASE commands when many tablespaces are in use (Fujii Masao) @@ -888,7 +888,7 @@ Author: Tomas Vondra --> - Allow a sample of statements to be logged (Adrien Nayrat) + Allow logging a sample of statements (Adrien Nayrat) @@ -1000,7 +1000,7 @@ Author: Michael Paquier Add leader_pid to to report parallel worker ownership + linkend="pg-stat-activity-view"/> to report parallel worker's leader process (Julien Rouhaud) @@ -1285,7 +1285,7 @@ Author: Alvaro Herrera --> - Allow WAL receivers use a temporary replication slot + Allow WAL receivers to use a temporary replication slot if a permanent one is not specified (Peter Eisentraut, Sergei Kornilov) @@ -1369,8 +1369,8 @@ Author: Fujii Masao --> - Allow WAL recovery to continue even if invalid - pages are referenced (Fujii Masao) + Allow recovery to continue even if invalid + pages are referenced by WAL (Fujii Masao) @@ -1689,15 +1689,14 @@ Author: Andrew Dunstan Add alternate version of jsonb_setI() + linkend="functions-json-processing-table">jsonb_set() with special NULL handling (Andrew Dunstan) - The new function, jsonb_set_lax(), allows null - new values to either set the specified key to JSON - null, delete the key, raise exception, or ignore the operation. - IS 'return_target' CLEAR? + The new function, jsonb_set_lax(), allows new + null values to either set the specified key to JSON + null, delete the key, raise an exception, or ignore the operation. @@ -1863,8 +1862,8 @@ Author: Tom Lane Add function min_scale() - that returns the number of digits to the right the decimal point - that is required to represent the numeric value with full precision + that returns the number of digits to the right of the decimal point + that are required to represent the numeric value with full precision (Pavel Stehule) @@ -1913,8 +1912,7 @@ Author: Thomas Munro - The old function names were kept for backward compatibility. DO WE - HAVE NEW NAMES? + The old functions were kept for backward compatibility. @@ -2833,7 +2831,7 @@ Author: Tom Lane - This improves performance for queries that access many object. + This improves performance for queries that access many objects. The internal List API has also been improved. -- 2.17.0 --xgyAXRrhYN0wYx8y--