Re: [HACKERS] How to inspect tuples during execution of a plan?

2016-10-12 Thread Ernst-Georg Schmid
Hello,

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

I used the ExeceutorRun_hook and it seems to work. The drawback is,
that I have to provide my own implementation of ExecutePlan() which
could make it incompatible over versions of PostgreSQL. I don't know
how stable that function is over time.

https://github.com/ergo70/pg_sentinel

Thank you,

Ernst-Georg


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


[HACKERS] How to inspect tuples during execution of a plan?

2016-10-10 Thread Ernst-Georg Schmid
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.

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.

Best regards,

Ernst-Georg Schmid


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers