Simplify more checks related to set-returning functions
Michael Paquier <michael@paquier.xyz>
Simplify more checks related to set-returning functions This makes more consistent the SRF-related checks in the area of PL/pgSQL, PL/Perl, PL/Tcl, pageinspect and some of the JSON worker functions, making it easier to grep for the same error patterns through the code, reducing a bit the translation work. It is worth noting that each_worker_jsonb()/each_worker() in jsonfuncs.c and pageinspect's brin_page_items() were doing a check on expectedDesc that is not required as they fetch their tuple descriptor directly from get_call_result_type(). This looks like a set of copy-paste errors that have spread over the years. This commit is a continuation of the changes begun in 07daca5, for any remaining code paths on sight. Like fcc2817, this makes the code more consistent, easing the integration of a larger patch that will refactor the way tuplestores are created and checked in a good portion of the set-returning functions present in core. I have worked my way through the changes of this patch by myself, and Ranier has proposed the same changes in a different thread in parallel, though there were some inconsistencies related in expectedDesc in what was proposed by him. Author: Michael Paquier, Ranier Vilela Discussion: https://postgr.es/m/CAAKRu_azyd1Z3W_r7Ou4sorTjRCs+PxeHw1CWJeXKofkE6TuZg@mail.gmail.com Discussion: https://postgr.es/m/CAEudQApm=AFuJjEHLBjBcJbxcw4pBMwg2sHwXyCXYcbBOj3hpg@mail.gmail.com
Files
| Path | Change | +/− |
|---|---|---|
| contrib/pageinspect/brinfuncs.c | modified | +1 −2 |
| src/backend/utils/adt/jsonfuncs.c | modified | +35 −26 |
| src/pl/plperl/plperl.c | modified | +7 −4 |
| src/pl/plpgsql/src/pl_exec.c | modified | +14 −5 |
| src/pl/tcl/pltcl.c | modified | +6 −2 |
Discussion
- Uniforms the errors msgs at tuplestore paths 7 messages · 2022-02-20 → 2022-02-24
- make tuplestore helper function 23 messages · 2021-11-02 → 2022-03-08