Re: How to inspect tuples during execution of a plan? - Mailing list pgsql-hackers

From Ashutosh Bapat
Subject Re: How to inspect tuples during execution of a plan?
Date
Msg-id CAFjFpRcFJR9M98ecpJhMRCa1AGhW7ebec=SyHukk8eEfhyvV+w@mail.gmail.com
Whole thread Raw
In response to How to inspect tuples during execution of a plan?  (Ernst-Georg Schmid <ernst.georg.schmid@googlemail.com>)
Responses Re: How to inspect tuples during execution of a plan?
List pgsql-hackers
On Mon, Oct 10, 2016 at 1:39 PM, Ernst-Georg Schmid
<ernst.georg.schmid@googlemail.com> wrote:
> Hello all,
>
> I'd like to inspect the content of tuples as they are sent during the
> execution of a query in order to react to their values.

The correct answer will depend upon the purpose of this inspection.
You may write a function, which can be invoked through a query
wrapping the original query OR you may add a new planner code (check
custom scans) which does the inspection. These are many ways to do
this with different degrees of invasive-ness. They may or may not
suite your purpose.

>
> I guess I could do it with a FDW, but that's a bit clumsy so I took a
> look at the hooks but have two questions:
>
> 1.) Would ExecutorRun_hook be the correct place to implement such an
> 'tuple inspector'?
> 2.) If yes, how? As far as I understand the source code, I would have
> to provide my own implementation based on standard_ExecutorRun and
> replace the ExecutePlan function with my own one that takes a look at
> each 'slot' like so
>
> if (estate->es_junkFilter != NULL)
>  1589             slot = ExecFilterJunk(estate->es_junkFilter, slot);
>  1590
>
> Tuple inspection here
>
>  1591         /*
>  1592          * If we are supposed to send the tuple somewhere, do so. (In
>  1593          * practice, this is probably always the case at this point.)
>  1594          */
>  1595         if (sendTuples)
>  1596         {
>
> If there is a better way, please advise. I'm really a newbie to this.

Either of those would do, if you want to write change the executor.

-- 
Best Wishes,
Ashutosh Bapat
EnterpriseDB Corporation
The Postgres Database Company



pgsql-hackers by date:

Previous
From: Mithun Cy
Date:
Subject: Re: "Some tests to cover hash_index"
Next
From: Petr Jelinek
Date:
Subject: Re: autonomous transactions