Re: Rearranging ALTER TABLE to avoid multi-operations bugs
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Robert Haas <robertmhaas@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2019-05-29T21:52:02Z
Lists: pgsql-hackers
Robert Haas <robertmhaas@gmail.com> writes: > On Sun, May 26, 2019 at 6:24 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: >> Anybody have thoughts about a different way to approach it? > I mean, in an ideal world, I think we'd never call back out to > ProcessUtility() from within AlterTable(). That seems like a pretty > clear layering violation. I assume the reason we've never tried to do > better is a lack of round tuits and/or sufficient motivation. > In terms of what we'd do instead, I suppose we'd try to move as much > as possible inside the ALTER TABLE framework proper and have > everything call into that. Hm ... I'm not exactly clear on why that would be a superior solution. It would imply that standalone CREATE INDEX etc would call into the ALTER TABLE framework --- how is that not equally a layering violation? Also, recursive ProcessUtility cases exist independently of this issue, in particular in CreateSchemaCommand. My worry about my patch upthread is not really that it introduces another one, but that it doesn't do anything towards providing a uniform framework/notation for all these cases. regards, tom lane
Commits
-
Clarify behavior of adding and altering a column in same ALTER command.
- 9b9c5f279e82 13.0 landed
-
Restructure ALTER TABLE execution to fix assorted bugs.
- 1281a5c907b4 13.0 landed
-
doc: Add best practises section to partitioning docs
- e788e849addd 12.0 cited
-
Allow on-the-fly capture of DDL event details
- b488c580aef4 9.5.0 cited