At Wed, 2 Mar 2022 16:46:01 +0900, Michael Paquier <michael@paquier.xyz> wrote in
> Hi all,
>
> In my hunt looking for incorrect SRFs, I have noticed a new case of a
> system function marked as proretset while it builds and returns only
> one record. And this is a popular one: pg_stop_backup(), labelled
> v2.
>
> This leads to a lot of unnecessary work, as the function creates a
> tuplestore it has no need for with the usual set of checks related to
> SRFs. The logic can be be simplified as of the attached.
>
> Thoughts?
That direction seems find to me.
But the patch forgets to remove an useless variable.
> /* Initialise attributes information in the tuple descriptor */
> tupdesc = CreateTemplateTupleDesc(PG_STOP_BACKUP_V2_COLS);
> TupleDescInitEntry(tupdesc, (AttrNumber) 1, "lsn",
> PG_LSNOID, -1, 0);
I think we can use get_call_resuilt_type here.
regards.
--
Kyotaro Horiguchi
NTT Open Source Software Center