Re: Is temporary functions feature official/supported? Found some issues with it.
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Alexey Bashtanov <bashtanov@imap.cc>, pgsql-bugs@postgresql.org, mmitar@gmail.com
Date: 2019-01-07T02:42:11Z
Lists: pgsql-bugs
Attachments
- temp-object-2pc.patch (text/x-diff) patch
On Sat, Jan 05, 2019 at 09:00:37AM +0900, Michael Paquier wrote: > I think I can get that worked out with a back-patchable approach, > still it looks a bit sensitive because of the creation-pending logic > which relies on the assertion at the top of InitTempTableNamespace, > which is a case we may want to handle with an extra flag for the > caller of InitTempTableNamespace(), aka "fail if myTempNamespace is > valid instead of just returning back". Looking at this stuff, I have been able to come up with the attached, which introduces a new flag mode for MyXactFlags, which gets set in a couple of code paths so as PREPARE TRANSACTIOn complains: - When attempting a LOCK on a temporary relation. - When dropping objects part of a temporary namespace. - When trying to access the temporary schema of a session, where it may be initialized (or not if already present). I have added test cases for things I could come up with, particularly the LOCK and DROP cases which I have thought about after hacking the code. I think that something among those lines should be back-patched. Thoughts? -- Michael
Commits
-
Restrict the use of temporary namespace in two-phase transactions
- b15160bc716e 10.7 landed
- 3e4fdb3bc0dc 11.2 landed
- c5660e0aa52d 12.0 landed