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 1lWAqR-0002bk-Fx for pgsql-hackers@arkaria.postgresql.org; Tue, 13 Apr 2021 04:40:11 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1lWAqP-0001si-7C for pgsql-hackers@arkaria.postgresql.org; Tue, 13 Apr 2021 04:40:09 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lWAqO-0001sb-Vw for pgsql-hackers@lists.postgresql.org; Tue, 13 Apr 2021 04:40:09 +0000 Received: from mail-io1-xd30.google.com ([2607:f8b0:4864:20::d30]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1lWAqH-0008HE-OT for pgsql-hackers@postgresql.org; Tue, 13 Apr 2021 04:40:08 +0000 Received: by mail-io1-xd30.google.com with SMTP id k25so15799824iob.6 for ; Mon, 12 Apr 2021 21:40:01 -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=f2OlctKc5JnTFmTiB6XDMlUCKY5IomPZE9IA41DN2Hc=; b=op1WOWoWKYMYlliSNOtoUFYyLVfd0PXWA3K5WygaGiSCQGwsa3jSqaHqQzWlZOX2QN HrOp+vd9UlNcaA0LL1kLrRpgmr5RgEngVUejyNXm0YIUQWy6LvUtuQoFYlhTZvh/MJ+C 3EyWi56iajgDEzPOrNa3EnvJj4N20YmmwxTEfHPvzeGbFMfd1w2aBxSMJ2Gdbzpck/l4 J+U8yQ+zo5SxQCjnZWlrgzXn01EbUs6Z64OvZjePNmABOe3Nt+28f2J/IhfI9PC/wE32 NdEQ747omfkWbP8zncXup/maQcdtTcW2fKYTdHKHL3x8VtfYfkE7BpoClOsahODZDUmd mPfg== 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=f2OlctKc5JnTFmTiB6XDMlUCKY5IomPZE9IA41DN2Hc=; b=HamPnqay1qqpt8dkg/DQIuYXuJsZmbiz75DI1lYu7Tp33E0GIecjj7Tv9lC4virP4H fCFrah2zEISzLQsLZXQJGWwtKKXSM/2BmxSB6ZjNbKy4TgsGf30XJrzWjJtvDVCAmpfP UvQurQWGKVcbQ5yhJJW1U2M5Odweo/w7pwQkPjxkjvd/14gkRoOZr4QKyYtMTNM4znqp 06GUijPBfxde2teIxyLuFWQzn5/CipdeZolD29tB/DdPRiu2ifIaZEHiBqOp2meI32x3 fgU7WGdCDsqyFSRlfoUodnJfe+QNXQ0H6lNbZpfIyHBwFuPrvVjN6l9HJ9S9QwaV2v2M 6MSg== X-Gm-Message-State: AOAM533x8w3G0IgLXVR3QADBiIf95tpmJkSUw5Q0E9eVNCluiIJa7FmC Qbpn54Xq173DNjvNYcF4fA29FFrCRHccrw== X-Google-Smtp-Source: ABdhPJzjJBMmZnmAyMDNhQd5M/tvFLjgSljvzSk5GolPY4Jnx9FgFgtJFRQRJWSMGxrD0xgUNI16Ow== X-Received: by 2002:a05:6638:144e:: with SMTP id l14mr31479551jad.76.1618288800086; Mon, 12 Apr 2021 21:40:00 -0700 (PDT) Received: from pryzbyj.telsasoft (charmander.telsasoft.com. [50.244.222.1]) by smtp.gmail.com with ESMTPSA id f1sm6176405ilu.46.2021.04.12.21.39.58 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 12 Apr 2021 21:39:59 -0700 (PDT) Received: by pryzbyj.telsasoft (Postfix, from userid 1000) id D20E5801860; Mon, 12 Apr 2021 23:39:57 -0500 (CDT) Date: Mon, 12 Apr 2021 23:39:57 -0500 From: Justin Pryzby To: Michael Paquier Cc: pgsql-hackers@postgresql.org, Bruce Momjian Subject: Re: doc review for v14 Message-ID: <20210413043957.GB6091@telsasoft.com> References: <20210210235557.GQ20012@telsasoft.com> <20210222080345.GA23313@telsasoft.com> <20210301004647.GF20769@telsasoft.com> <20210301043354.GJ20769@telsasoft.com> <20210408164008.GJ6592@telsasoft.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="TB36FDmn/VVEgNH/" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.4 (2018-02-28) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --TB36FDmn/VVEgNH/ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Fri, Apr 09, 2021 at 02:03:27PM +0900, Michael Paquier wrote: > On Thu, Apr 08, 2021 at 11:40:08AM -0500, Justin Pryzby wrote: > > Another round of doc review, not yet including all of yesterday's commits. > > Thanks for compiling all that. I got through the whole set and > applied the most relevant parts on HEAD. Some of them applied down to > 9.6, so I have fixed it down where needed, for the parts that did not > conflict too heavily. Thanks. Rebased with remaining, queued fixes. -- Justin --TB36FDmn/VVEgNH/ Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0001-doc-review-Add-support-for-PROVE_TESTS-and-PROVE_FLA.patch" From 58b6a3ae7d76f6160bc7ad531f400da2fe0710eb Mon Sep 17 00:00:00 2001 From: Justin Pryzby Date: Thu, 4 Mar 2021 19:32:05 -0600 Subject: [PATCH 1/7] doc review: Add support for PROVE_TESTS and PROVE_FLAGS in MSVC scripts 5bca69a76b3046a85c60c48271c1831fd5affa51 --- doc/src/sgml/install-windows.sgml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/sgml/install-windows.sgml b/doc/src/sgml/install-windows.sgml index 64687b12e6..cb6bb05dc5 100644 --- a/doc/src/sgml/install-windows.sgml +++ b/doc/src/sgml/install-windows.sgml @@ -499,8 +499,8 @@ $ENV{PERL5LIB}=$ENV{PERL5LIB} . ';c:\IPC-Run-0.94\lib'; The TAP tests run with vcregress support the - environment variables PROVE_TESTS, that is expanded - automatically using the name patterns given, and + environment variables PROVE_TESTS, which is + expanded as a glob pattern, and PROVE_FLAGS. These can be set on a Windows terminal, before running vcregress: -- 2.17.0 --TB36FDmn/VVEgNH/ Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0002-doc-review-Pass-all-scan-keys-to-BRIN-consistent-fun.patch" From 705507708c977e8172a2e091378099e630bad1b0 Mon Sep 17 00:00:00 2001 From: Justin Pryzby Date: Tue, 23 Mar 2021 13:39:36 -0500 Subject: [PATCH 2/7] doc review: Pass all scan keys to BRIN consistent function at once commit a1c649d889bdf6e74e9382e1e28574d7071568de --- doc/src/sgml/brin.sgml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/sgml/brin.sgml b/doc/src/sgml/brin.sgml index d2f12bb605..d2476481af 100644 --- a/doc/src/sgml/brin.sgml +++ b/doc/src/sgml/brin.sgml @@ -833,7 +833,7 @@ typedef struct BrinOpcInfo Returns whether all the ScanKey entries are consistent with the given indexed values for a range. The attribute number to use is passed as part of the scan key. - Multiple scan keys for the same attribute may be passed at once, the + Multiple scan keys for the same attribute may be passed at once; the number of entries is determined by the nkeys parameter. -- 2.17.0 --TB36FDmn/VVEgNH/ Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0003-doc-review-BRIN-minmax-multi-indexes.patch" From b9bf3485cbd243bc09fcfd0f043ee8162b779e2f Mon Sep 17 00:00:00 2001 From: Justin Pryzby Date: Fri, 26 Mar 2021 23:14:57 -0500 Subject: [PATCH 3/7] doc review: BRIN minmax-multi indexes ab596105b55f1d7fbd5a66b66f65227d210b047d --- doc/src/sgml/brin.sgml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/sgml/brin.sgml b/doc/src/sgml/brin.sgml index d2476481af..ce7c210575 100644 --- a/doc/src/sgml/brin.sgml +++ b/doc/src/sgml/brin.sgml @@ -730,7 +730,7 @@ LOG: request for BRIN range summarization for index "brin_wi_idx" page 128 was for . When set to a positive value, each block range is assumed to contain this number of distinct non-null values. When set to a negative value, which must be greater than or - equal to -1, the number of distinct non-null is assumed linear with + equal to -1, the number of distinct non-null values is assumed to grow linearly with the maximum possible number of tuples in the block range (about 290 rows per block). The default value is -0.1, and the minimum number of distinct non-null values is 16. @@ -1214,7 +1214,7 @@ typedef struct BrinOpcInfo The minmax-multi operator class is also intended for data types implementing - a totally ordered sets, and may be seen as a simple extension of the minmax + a totally ordered set, and may be seen as a simple extension of the minmax operator class. While minmax operator class summarizes values from each block range into a single contiguous interval, minmax-multi allows summarization into multiple smaller intervals to improve handling of outlier values. -- 2.17.0 --TB36FDmn/VVEgNH/ Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0004-reltuples-not-relpages-Set-pg_class.reltuples-for-pa.patch" From 61ee22354dc000000eb60fcbd88d83dbc5b9316f Mon Sep 17 00:00:00 2001 From: Justin Pryzby Date: Sat, 10 Apr 2021 20:56:35 -0500 Subject: [PATCH 4/7] reltuples not relpages: Set pg_class.reltuples for partitioned tables commit 0e69f705cc1a3df273b38c9883fb5765991e04fe Author: Alvaro Herrera Date: Fri Apr 9 11:29:08 2021 -0400 --- src/backend/commands/analyze.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/commands/analyze.c b/src/backend/commands/analyze.c index cffcd54302..8aa329a2a0 100644 --- a/src/backend/commands/analyze.c +++ b/src/backend/commands/analyze.c @@ -660,7 +660,7 @@ do_analyze_rel(Relation onerel, VacuumParams *params, { /* * Partitioned tables don't have storage, so we don't set any fields in - * their pg_class entries except for relpages, which is necessary for + * their pg_class entries except for reltuples, which is necessary for * auto-analyze to work properly. */ vac_update_relstats(onerel, -1, totalrows, -- 2.17.0 --TB36FDmn/VVEgNH/ Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0005-preprending-Multirange-datatypes.patch" From 690d1446413fff5fb6eea6c839753aeb3f2846c2 Mon Sep 17 00:00:00 2001 From: Justin Pryzby Date: Mon, 12 Apr 2021 23:31:26 -0500 Subject: [PATCH 5/7] preprending: Multirange datatypes 6df7a9698bb036610c1e8c6d375e1be38cb26d5f --- src/backend/catalog/pg_type.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/catalog/pg_type.c b/src/backend/catalog/pg_type.c index ec5d122432..d50db2314e 100644 --- a/src/backend/catalog/pg_type.c +++ b/src/backend/catalog/pg_type.c @@ -988,7 +988,7 @@ makeMultirangeTypeName(const char *rangeTypeName, Oid typeNamespace) * makeUniqueTypeName * Generate a unique name for a prospective new type * - * Given a typeName, return a new palloc'ed name by preprending underscores + * Given a typeName, return a new palloc'ed name by prepending underscores * until a non-conflicting name results. * * If tryOriginal, first try with zero underscores. -- 2.17.0 --TB36FDmn/VVEgNH/ Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0006-lock-Make-use-of-in-core-query-id-added-by-commit-5f.patch" From 39cb334d833a65e4ccc8436c76aa6e76b59e44b1 Mon Sep 17 00:00:00 2001 From: Justin Pryzby Date: Thu, 8 Apr 2021 00:11:53 -0500 Subject: [PATCH 6/7] lock: Make use of in-core query id added by commit 5fd9dfa5f5 4f0b0966c866ae9f0e15d7cc73ccf7ce4e1af84b --- src/backend/utils/activity/backend_status.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend/utils/activity/backend_status.c b/src/backend/utils/activity/backend_status.c index 6110113e56..5c1b2c25ed 100644 --- a/src/backend/utils/activity/backend_status.c +++ b/src/backend/utils/activity/backend_status.c @@ -1032,10 +1032,10 @@ pgstat_get_my_queryid(void) if (!MyBEEntry) return 0; - /* There's no need for a look around pgstat_begin_read_activity / + /* There's no need for a lock around pgstat_begin_read_activity / * pgstat_end_read_activity here as it's only called from * pg_stat_get_activity which is already protected, or from the same - * backend which mean that there won't be concurrent write. + * backend which means that there won't be concurrent writes. */ return MyBEEntry->st_queryid; } -- 2.17.0 --TB36FDmn/VVEgNH/ Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0007-WIP-doc-review-Add-DECLARE-STATEMENT-command-to-ECPG.patch" From c6cb6a73fc5b0c6809f741b2bef7dabb0a854d9c Mon Sep 17 00:00:00 2001 From: Justin Pryzby Date: Fri, 2 Apr 2021 09:23:42 -0500 Subject: [PATCH 7/7] WIP: doc review: Add DECLARE STATEMENT command to ECPG ad8305a43d1890768a613d3fb586b44f17360f29 --- doc/src/sgml/ecpg.sgml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/doc/src/sgml/ecpg.sgml b/doc/src/sgml/ecpg.sgml index 56f5d9b5db..8f2908823a 100644 --- a/doc/src/sgml/ecpg.sgml +++ b/doc/src/sgml/ecpg.sgml @@ -354,14 +354,14 @@ current=testdb1 (should be testdb1) - The third option is to declare sql identifier linked to + The third option is to declare a SQL identifier linked to the connection, for example: EXEC SQL AT connection-name DECLARE statement-name STATEMENT; EXEC SQL PREPARE statement-name FROM :dyn-string; - Once you link a sql identifier to a connection, you execute a dynamic SQL - without AT clause. Note that this option behaves like preprocessor directives, + Once you link a SQL identifier to a connection, you execute dynamic SQL + without an AT clause. Note that this option behaves like preprocessor directives, therefore the link is enabled only in the file. @@ -6911,14 +6911,14 @@ EXEC SQL [ AT connection_name ] DEC Description - DECLARE STATEMENT declares SQL statement identifier. + DECLARE STATEMENT declares a SQL statement identifier. SQL statement identifier can be associated with the connection. - When the identifier is used by dynamic SQL statements, these SQLs are executed - by using the associated connection. + When the identifier is used by dynamic SQL statements, the statements are executed + using the associated connection. The namespace of the declaration is the precompile unit, and multiple declarations to - the same SQL statement identifier is not allowed. + the same SQL statement identifier are not allowed. - Note that if the precompiler run in the Informix compatibility mode and some SQL statement + Note that if the precompiler runs in Informix compatibility mode and some SQL statement is declared, "database" can not be used as a cursor name. -- 2.17.0 --TB36FDmn/VVEgNH/--