Re: Patching documentation of ALTER TABLE re column type changes on binary-coercible fields

From: Michael Banck <michael(dot)banck(at)credativ(dot)de>
To: Mike Lissner <mlissner(at)michaeljaylissner(dot)com>
Cc: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: Patching documentation of ALTER TABLE re column type changes on binary-coercible fields
Date: 2021-09-07 10:35:40
Message-ID: 6137407d.1c69fb81.21a6.9b99@mx.google.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

I've stumbled over this topic today, and found your patch.

On Thu, Jan 23, 2020 at 11:01:36PM -0800, Mike Lissner wrote:
> Enclosed please find a patch to tweak the documentation of the ALTER TABLE
> page. I believe this patch is ready to be applied to master and backported
> all the way to 9.2.
>
> On the ALTER TABLE page, it currently notes that if you change the type of
> a column, even to a binary coercible type:
>
> > any indexes on the affected columns must still be rebuilt.
>
> It appears this hasn't been true for about eight years, since 367bc426a.
>
> Here's the discussion of the topic from earlier today and yesterday:
>
> https://www.postgresql.org/message-id/flat/CAMp9%3DExXtH0NeF%2BLTsNrew_oXycAJTNVKbRYnqgoEAT01t%3D67A%40mail.gmail.com
>
> I haven't run tests, but I presume they'll be unaffected by a documentation
> change.
>
> I've made an effort to follow the example of other people's patches I
> looked at, but I haven't contributed here before. Happy to take another
> stab at this if this doesn't hit the mark — though I hope it does. I love
> and appreciate Postgresql and hope that I can do my little part to make it
> better.
>
> For the moment, I haven't added this to commitfest. I don't know what it
> is, but I suspect this is small enough somebody will just pick it up.
>
> Mike

> Index: doc/src/sgml/ref/alter_table.sgml
> IDEA additional info:
> Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
> <+>UTF-8
> ===================================================================
> --- doc/src/sgml/ref/alter_table.sgml (revision 6de7bcb76f6593dcd107a6bfed645f2142bf3225)
> +++ doc/src/sgml/ref/alter_table.sgml (revision 9a813e0896e828900739d95f78b5e4be10dac365)
> @@ -1225,10 +1225,9 @@
> existing column, if the <literal>USING</literal> clause does not change
> the column contents and the old type is either binary coercible to the new
> type or an unconstrained domain over the new type, a table rewrite is not
> - needed; but any indexes on the affected columns must still be rebuilt.
> - Table and/or index rebuilds may take a
> - significant amount of time for a large table; and will temporarily require
> - as much as double the disk space.
> + needed. Table and/or index rebuilds may take a significant amount of time
> + for a large table; and will temporarily require as much as double the disk
> + space.
> </para>

In general, I find the USING part in that paragraph a bit confusing; I
think the main use case for ALTER COLUMN ... TYPE is without it. So I
would suggest separating the two and make the general case (table and
indexe rewrites are not needed if the type is binary coercible without
having USING in the same sentence.

Michael

--
Michael Banck
Projektleiter / Senior Berater
Tel.: +49 2166 9901-171
Fax: +49 2166 9901-100
Email: michael(dot)banck(at)credativ(dot)de

credativ GmbH, HRB Mönchengladbach 12080
USt-ID-Nummer: DE204566209
Trompeterallee 108, 41189 Mönchengladbach
Geschäftsführung: Dr. Michael Meskes, Sascha Heuer, Geoff Richardson,
Peter Lilley

Unser Umgang mit personenbezogenen Daten unterliegt
folgenden Bestimmungen: https://www.credativ.de/datenschutz

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2021-09-07 11:13:10 Re: Non-decimal integer literals
Previous Message Magnus Hagander 2021-09-07 10:24:07 Re: PROXY protocol support