Re: Commits 8de72b and 5457a1 (COPY FREEZE)
Stephen Frost <sfrost@snowman.net>
From: Stephen Frost <sfrost@snowman.net>
To: Noah Misch <noah@leadboat.com>
Cc: Jeff Davis <pgsql@j-davis.com>, Robert Haas <robertmhaas@gmail.com>, Simon Riggs <simon@2ndquadrant.com>, pgsql-hackers@postgresql.org
Date: 2012-12-11T01:54:04Z
Lists: pgsql-hackers
Noah, * Noah Misch (noah@leadboat.com) wrote: > I agree we should be reticent to compromise correctness for convenience. > Compromising mere bug-compatibility, trading one incorrect behavior for > another incorrect behavior, is not as bad. Furthermore, today's behavior in > question is not something I can see applications deliberately and successfully > relying upon. I actually don't agree with the notion that one bad bug should allow us to introduce additional such bugs. I agree that it's unlikely that applications are depending on today's behavior of TRUNCATE making concurrent transactions see an empty table, but it does *not* follow that applications *won't* start depending on this new behavior of COPY FREEZE. > Extending it to cases not involving a just-created or just-truncated table > really would compromise correctness; errors could leave the table in an > otherwise-impossible state. Let's indeed not go there. Even if we could fix that, I'd be against allowing it arbitrairly for any regular user INSERT or UPDATE; I'm still not particularly happy with this approach for COPY. > > It'll definitely reduce the interest in finding a real > > solution though, which is unfortunate. > > That effect seems likely, but I do not find it unfortunate. The change > variant I have advocated does not stand in contrast to some "real solution" to > PostgreSQL's treatment for readers of tables created or truncated by a > transaction not in the reader's snapshot. The two topics interact at arm's > length. Bundling them into one patch, artificially making them to stand or > fall as a pair, is not a win for PostgreSQL. Having proper MVCC support for DDL *would* be a win for PostgreSQL and this *does* reduce the chances of that ever happening. > That does raise another disadvantage of making the change syntax-controlled: > if we someday implement the other improvement, COPY FREEZE will have minimal > reason not to be the default. FREEZE then becomes a relic noise word. Indeed, that's certainly unfortunate as well. Really, though, it just goes to show how much of a hack this is rather than a real solution. Thanks, Stephen
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Keep rd_newRelfilenodeSubid across overflow.
- ae9aba69a860 9.3.0 cited
-
Reduce scope of changes for COPY FREEZE.
- 5457a130d3a6 9.3.0 cited
-
COPY FREEZE and mark committed on fresh tables.
- 8de72b66a2ed 9.3.0 cited