Re: [BUG] temporary file usage report with extended protocol and unnamed portals
Sami Imseih <samimseih@gmail.com>
From: Sami Imseih <samimseih@gmail.com>
To: Mircea Cadariu <cadariu.mircea@gmail.com>
Cc: Michael Paquier <michael@paquier.xyz>, Frédéric Yhuel <frederic.yhuel@dalibo.com>, Tom Lane <tgl@sss.pgh.pa.us>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Benoit Lobréau <benoit.lobreau@dalibo.com>, Guillaume Lelarge <guillaume.lelarge@dalibo.com>, Pierrick Chovelon <pierrick.chovelon@dalibo.com>
Date: 2025-09-19T20:28:46Z
Lists: pgsql-hackers
Attachments
- v13-0002-Add-tests-for-temp-file-logging.patch (application/octet-stream) patch v13-0002
- v13-0001-Fix-temp-file-logging-blame-in-extended-query.patch (application/octet-stream) patch v13-0001
>> This makes me wonder then if all it takes is just adding this to PortalDrop (proposed earlier in the thread by Frédéric): > One thing I did not like about that approach is that we will need to > save the current debug_query_string inside PortalDrop before > temporarily setting it to the one from the about to be dropped > portal, and then set it back to the saved one before exiting. > Otherwise, we might end up logging the wrong query in some cases > (although I could not find a test case that proves my worry). After thinking about this a bit more, I found the test that breaks with v12. It is a bind statement in an implicit transaction. The portal will get dropped by the end of the transaction and will not reach drop_unnamed_portal. So, v13 takes Frederic's original idea, saves the pointer of debug_query_string, and resets it at the end of DropPortal. I also enhanced the test coverage. Debugging also shows that the STATEMENT: log is formed while we are in ExecutorEnd. We know that other extensions rely on QueryDesc->sourceText in that hook (i.e., pg_stat_statements), so this is another reason this approach appears safe, in addition to what was mentioned here [0] about the MessageContext outliving the portal. [0] https://www.postgresql.org/message-id/CAA5RZ0vB-h2pFimPSi72ObWfpRwKR5kaN9XWW17TOkLntC9svA%40mail.gmail.com -- Sami
Commits
-
Drop unnamed portal immediately after execution to completion
- 1fd981f05369 19 (unreleased) landed
-
Override log_error_verbosity to "default" in test 009_log_temp_files
- 02c171f63fca 19 (unreleased) landed
-
Add tests for logging of temporary file removal and statement
- 76bba033128a 19 (unreleased) landed