Re: removal of dangling temp tables
Alvaro Herrera <alvherre@2ndquadrant.com>
From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>, Tom Lane <tgl@sss.pgh.pa.us>, Robert Haas <robertmhaas@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2018-12-27T19:30:21Z
Lists: pgsql-hackers
On 2018-Dec-27, Michael Paquier wrote: > On Wed, Dec 26, 2018 at 08:51:56PM -0300, Alvaro Herrera wrote: > > Having been victim of ABI incompatibility myself, I loathe giving too > > much priority to other issues that can be resolved in other ways, so I > > don't necessarily support your view on bugs. > > That said, I think in this case it shouldn't be a problem, so I'm going > > to work on that next. > > And it is even better if bugs can be fixed, even partially without any > ABI breakages. Anyway, not breaking the ABI of PGPROC is why 246a6c8 > has not been back-patched to begin with, because we have no idea how > PGPROC is being used and because its interface is public, so if the > intent is to apply 246a6c8 to v10 and down this gets a -1 from me. We allow structs to receive new members at the end of the struct, since this doesn't affect the offset of existing members; thus code already compiled with the previous struct definition does not break. AFAICS there is no danger in backpatching that, moving that struct member at the end of the struct. > Back-patching what you sent in > https://www.postgresql.org/message-id/20181226190834.wsk2wzott5yzrjiq@alvherre.pgsql > is fine for me. Done. > + snprintf(namespaceName, sizeof(namespaceName), "pg_temp_%d", > + MyBackendId); > + namespaceId = get_namespace_oid(namespaceName, true); > > So this is the reverse engineering of GetTempNamespaceBackendId(). > Perhaps a dedicated API in namespace.c would be interesting to have? Since this code doesn't appear in branches 11 and later, I'm not sure creating such an API has any value. > I would recommend to keep the changes for DISCARD and autovacuum into > separate commits. Yeah, done like that. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Commits
-
Have DISCARD ALL/TEMP remove leftover temp tables
- b7258a30aa6f 9.5.16 landed
- aa2e84d2cc8d 9.6.12 landed
- 3c4ca21093b5 10.7 landed
- 2602838fa338 9.4.21 landed
-
Make autovacuum more selective about temp tables to keep
- 5199abaca318 9.4.21 landed
- a85045cccb1b 9.5.16 landed
- a6ca47cd2f3f 10.7 landed
- 7fc2363a6158 9.6.12 landed
-
Make autovacuum more aggressive to remove orphaned temp tables
- 943576bddcb5 11.0 cited
-
autovacuum: Drop orphan temp tables more quickly but with more caution.
- a734fd5d1c30 10.0 cited