Make PQgetResult() not return NULL on out-of-memory error
Yugo Nagata <nagata@sraoss.co.jp>
From: Yugo Nagata <nagata@sraoss.co.jp>
To: Pgsql Hackers <pgsql-hackers@postgresql.org>
Date: 2025-11-10T17:07:01Z
Lists: pgsql-hackers
Attachments
Hi, Currently, PQgetResult() returns NULL not only when no results remain for a sent query, but also when an out-of-memory error occurs, except when PGconn itself is NULL. As a result, users cannot distinguish between query completion and an out-of-memory error when PQgetResult() returns NULL. The result returned by PQgetResult() is generated by either pqPipelineProcessQueue() or getCopyResult(). While pqPipelineProcessQueue() never returns NULL, even in the case of an out-of-memory error, getCopyResult() may return NULL. Therefore, I propose modifying getCopyResult() so that it never returns NULL, but instead returns OOM_result, as pqPipelineProcessQueue() does. I’ve attached a patch for this. Regards, Yugo Nagata -- Yugo Nagata <nagata@sraoss.co.jp>