On 18th of July, Robert Haas committed patch:
Avoid index rebuild for no-rewrite ALTER TABLE .. ALTER TYPE. Noah Misch. Review and minor cosmetic changes by me.
Continue reading Waiting for 9.2 – Avoiding reindexing on alter type of indexed column
On 18th of July, Robert Haas committed patch:
Avoid index rebuild for no-rewrite ALTER TABLE .. ALTER TYPE. Noah Misch. Review and minor cosmetic changes by me.
Continue reading Waiting for 9.2 – Avoiding reindexing on alter type of indexed column
On 12th of February, Robert Haas committed patch:
Teach ALTER TABLE .. SET DATA TYPE TO avoid SOME TABLE rewrites. WHEN the OLD TYPE IS BINARY coercible TO the NEW TYPE AND the USING clause does NOT CHANGE the COLUMN contents, we can avoid a FULL TABLE rewrite, though any indexes ON the affected COLUMNS will still need TO be rebuilt. This applies, FOR example, WHEN changing a VARCHAR COLUMN TO be OF TYPE text. The prior coding assumed that the SET OF operations that force a rewrite IS identical TO the SET OF operations that must be propagated TO TABLES making USE OF the affected TABLE's rowtype. This is no longer true: even though the tuples in those tables wouldn't need TO be modified, the DATA TYPE CHANGE invalidate indexes built USING those composite TYPE COLUMNS. Indexes ON the TABLE we're actually modifying can be invalidated too, of course, but the existing machinery is sufficient to handle that case. Along the way, add some debugging messages that make it possible to understand what operations ALTER TABLE is actually performing in these cases. Noah Misch and Robert Haas
Later on, on 15th, he committed second patch with few more cases where rewrite can be avoided.
Continue reading Waiting for 9.1 – Rewrite-less changing types of column
Finally, on 25th of October, Tom Lane committed patch which does:
Allow new values to be added to an existing enum type. After much expenditure of effort, we've got this to the point where the performance penalty is pretty minimal in typical cases. Andrew Dunstan, reviewed by Brendan Jurd, Dean Rasheed, and Tom Lane
On 26th of September, Peter Eisentraut committed patch which adds:
ADD ALTER TYPE ... ADD/DROP/ALTER/RENAME ATTRIBUTE LIKE WITH TABLES, this also requires allowing the existence OF composite types WITH zero attributes. reviewed BY KaiGai Kohei