Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wVql7-002ELE-1I for pgsql-hackers@arkaria.postgresql.org; Sat, 06 Jun 2026 13:08:17 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wVql5-00G4DN-2e for pgsql-hackers@arkaria.postgresql.org; Sat, 06 Jun 2026 13:08:15 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wVql4-00G4DE-2W for pgsql-hackers@lists.postgresql.org; Sat, 06 Jun 2026 13:08:15 +0000 Received: from fout-a5-smtp.messagingengine.com ([103.168.172.148]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wVql2-00000001Obo-2Nyn for pgsql-hackers@lists.postgresql.org; Sat, 06 Jun 2026 13:08:13 +0000 Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42]) by mailfout.phl.internal (Postfix) with ESMTP id 0F072EC0100; Sat, 6 Jun 2026 09:08:11 -0400 (EDT) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-02.internal (MEProxy); Sat, 06 Jun 2026 09:08:11 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kurilemu.de; h= cc:cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :reply-to:subject:subject:to:to; s=fm2; t=1780751291; x= 1780837691; bh=9CANtEVPWHUt2aN/klTsbL7XmnjLcX2fkdahHcavJn4=; b=g d7JdEZAt7gWWpu1cQeqEnzkvOutf64yhXd0+FGdJekpmnKzRMgsVGIza6+/sVjfq QCZq+eEBx9+caK6XaPREWRnOjQJeUDFIE9m12miRUBqGNe40OjVX7TnqpKoLEcnZ wUUyn5U2glyAWaxrpqtVbZCJGz6pRWpqD8W1BJyv8OE2QYB7guVCiC6V3hKuypqM WWA9tXR9K4T93fE7/FWShDeY+6zbEjXjomYqG1Tk//Bmx4vDiMPCJO6I2GPwxqWY Wqd5Oh4jwOmMvkTcoMG6DOOKMaDzrPvL/osU5Dby6NvENz1LNZiiP3VCQ3koMbpI XA/zuDSh2fejwFR8RI4vA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :reply-to:subject:subject:to:to:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm1; t=1780751291; x=1780837691; bh=9 CANtEVPWHUt2aN/klTsbL7XmnjLcX2fkdahHcavJn4=; b=WPujdwdORejIxvuCJ 6Lsfnnrq/gTmmmGcwcFynQU+vswDYDIySeoGZMNH9lIJrbo6MbvEAJciL0P6IpGc b5Bp+iHN/BgfMNSqxKW2mH62lGnWtvs+l1MAJIvQRtUULfj+/PJq7p9JRJ0lEA3P rcFRUexCpQiKvP8FKAB3SRmOcj/X4AzXMbQ3JOL2BERqo1NvpEjgndNoW/gQDH9j uzUr/HWMA7P9rWBvI71I9jRlrgE25+ba05dwBu1iNodSz7KZJ652ZE3SgZGS1M9u 1ldDha7IQPZmqEBtQt6VMy6yENYDlhpaSW0GPjXuFwIyO4H/zMmb/PHyYwCWA/H7 OtqGw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTEW/Bc7k9XXp/+S5OZ8LZ+4Zclc3JfW8TAkKH0VOkUsRVlZN3c1mRBe1SISn9ROOw vJxl5VvX+ECHaQ++QFHzUHcEcvRPDm029x1Tv70IjWdtseOkYR2HByA87e7BFHJ4Y/3ePQ JjxhswxMkTRie80kvGzXxN18Aug7nps9i+F7IgyXzGUJts1EpgjI4XNTKPJxqH1ThlogJV Zee/Zsj65v3D4FWYba/Aj9iQO6SwDegXiRwb/vIFklWyd7qQCU28iSeNkuiLXxsGUxiVws W+PtVy8lmqi9KVBUO7TRETVj07fl5FdQIN97p6yePgg1aMY10nUccNX60Eo5d9KkIDwroE qk2mRgdrnOF+JhWtcF8HuqyhVwQie5xJjqwyrCOhXy6L7h9nIapFbkStC1dvG9xVlH8gwz hnAMridUlB8qFjrp7u3+8jmRFOftQHgOgF8Ty59Rv5TMh67wXZJ9QBuj9YJ95862p7wWGo GXuhpSvjND1FgJ/9ExUPk7L73OKvmW0KbVx0p8O7nF9ZhaA3jsmppTgfvcimM8yBYcE3K/ qc4aUkw5xQGWxrs1BBTy/n7quKtTzt6JDdN6a/3Imoro8OYTvVqOyOkGoy0ct0pw2SdhaU iAkLawhlLc2NFnWcIJFFv+EPu/qT9JuISl5ipt/+Yxrvl+pFIpTtdL5WCETw X-ME-Proxy: Feedback-ID: ie3de48e3:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat, 6 Jun 2026 09:08:09 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kurilemu.de; s=schmee; t=1780751285; bh=ChbOiFktHScZ2whRthR4FNYBCSjdZa6wYjJLD5TDcYo=; h=Date:From:To:Cc:Subject:In-Reply-To:From; b=D92wUdE9lq6KwMRNXcKttTE9VcZ/FzvYMlcCw0Mq28aASSJ135KIHjtRVLv/tm3S2 Y67HsWXQsxKEDiWNfuZJbej7Yc1hC9vUZEcRz1uYTtnz8RIddkfG7dj+FnJAG2H2r6 DnTqPsWgI9+3vymI7UaG8pMIBjJ9MQU65FnYePugCTBTv9NzFX6nQpKPJi/IWjsq1w bYq1gTKSahkdZt+ejaKdY/t2BpPV2Tg2h40+pUUIq1D/R05NR+xExmf/8BpwY7z6u9 +m2zxM2ferrjTGOROG4ISeAHvpoaotBfIn8VwkP5a3zv5/GgLuOly6JkkiShoYPvEq PMiDcQC/ofYiA== Received: by ida.kurilemu.internal (Postfix, from userid 1000) id BFB34B00629; Sat, 06 Jun 2026 15:08:05 +0200 (CEST) Date: Sat, 6 Jun 2026 15:08:05 +0200 From: =?utf-8?Q?=C3=81lvaro?= Herrera To: Bruce Momjian Cc: Yugo Nagata , PostgreSQL-development Subject: Re: First draft of PG 19 release notes Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On 2026-Jun-05, Bruce Momjian wrote: > > I want to thank everyone for the fixes/improvements they have supplied > > for the PG 19 release notes. I am now satisfied with them and I think > > they are close to what they will look link for PG 19 final. Here are the > > current contents: > https://momjian.us/pgsql_docs/release-19.html Thanks for putting these together! I have a few comments: * In the incompatibilities section, we have - Prevent carriage returns and line feeds in database, role, and tablespace names This was changed to avoid security problems. pg_upgrade will also disallow upgrading of clusters that use such names. The verb "prevent" here is a bit strange; I think "reject" would be better. Also, I think the phrase involving pg_upgrade should come before the reason for the change. We also have this item: Change the default index opclasses for inet and cidr data types from btree_gist to GiST The btree_gist inet/cidr opclasses are broken because they can exclude rows that should be returned. pg_upgrade will fail to upgrade if btree_gist inet/cidr indexes exist in the old server. Why do we say "pg_upgrade will fail to upgrade" here instead of the (IMO better) wording in the previous item? That is, "pg_upgrade will disallow upgrading if btree_gist inet/cidr indexes exist in the old server". The current wording of "fail to" suggest that this is a pg_upgrade shortcoming, which it isn't. * In section E.1.3.1.1 Optimizer, I think the item "Allow extended statistics on virtual generated columns" should come before all other items, because it's the only one that requires user action in order for them to take advantage of it. All the other items refer to some optimization that occurs automatically. * Section E.1.3.1.2 General Performance, the item Allow autovacuum to use parallel vacuum workers lacks a link to https://momjian.us/pgsql_docs/sql-createtable.html#RELOPTION-AUTOVACUUM-PARALLEL-WORKERS * Section E.1.3.1.3 System Views, the two items Add vacuum initiation details to system view pg_stat_progress_vacuum Add analyze initiation details to system view pg_stat_progress_analyze Maybe they should be a single entry? Add vacuum and analyze initiation details to system view pg_stat_progress_vacuum and pg_stat_progress_analyze respectively (Not really sure about this one) * E.1.3.1.4 Monitoring Add server variable log_autoanalyze_min_duration to log long-running autoanalyze operations (Shinya Kato) § Server variable log_autovacuum_min_duration now only controls logging of autovacuum operations. I think it's confusing to talk about "autoanalyze" as if it were an action taken by an agent other than autovacuum. I mean, we have autovacuum which runs autovacuums and also autovacuum which runs autoanalyzes? To my mind that makes no sense -- I think we have one autovacuum, which runs vacuum and analyze. I would explain this as Add server variable log_autoanalyze_min_duration to log long-running analyze operations run by autovacuum (Shinya Kato) § Server variable log_autovacuum_min_duration now only controls logging of vacuum operations run by autovacuum. * Add WAL full-page write bytes reporting to VACUUM and ANALYZE logging (Shinya Kato) § Maybe this should be "Report bytes of full-page WAL writes to VACUUM and ANALYZE logging". (This also appears in E.1.3.3.3 EXPLAIN and E.1.3.1.3 System Views) * Add function pg_get_multixact_stats() to report multixact activity (Naga Appani) § I think this item should appear second in the section, right after the one for log_min_messages, on importance grounds. * Two entries make the acronym LSN point to https://momjian.us/pgsql_docs/wal-internals.html I think a better target is the glossary item https://momjian.us/pgsql_docs/glossary.html#GLOSSARY-LOG-SEQUENCE-NUMBER The shorter definition in the glossary is possibly more useful for a release note reader; and if they want even more detail, the glossary definition does point to the WAL internals. A third entry appears in E.1.3.1.6 * E.1.3.1.5 Server Configuration * Allow online enabling and disabling of data checksums Previously the checksum status could only be set at initialization and changed only while the cluster was offline using pg_checksums. The word "only" appears twice in the second phrase, which is awkward. Maybe reword it as Previously the checksum status would be fixed at initialization time and only changed while the cluster was offline usiNG PG_checksums. * Add scoring system to control the order that tables are autovacuumed I think using "autovacuumed" as a verb is terrible grammar. I would rather have "... are processed by autovacuum". * Allow background workers to be configured to terminate before database-level operations (Aya Iwata) § This sounds far too mysterious; it probably warrants more detail. Also, move it a bit upwards: just below SNI perhaps? (That isn't much, but all the other items in this section also look valuable.) * E.1.3.3.2 Copy * Allow COPY TO to output partitioned tables (Jian He, Ajin Cherian) § § "to output partitioned tables"? This reads really awkward. What about ... "Allow partitioned tables to be [processed / read] by COPY TO directly" or something like that? -- Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/ "La vida es para el que se aventura"