On Mon, Oct 10, 2016 at 1:39 PM, Ernst-Georg Schmid <ernst.georg.sch...@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 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers