* Tom Lane (tgl@sss.pgh.pa.us) wrote:
> Stephen Frost <sfrost@snowman.net> writes:
> > * Ashutosh Bapat (ashutosh.bapat@enterprisedb.com) wrote:
> >> During EXPLAIN, ExecInitNode() is called. If ExecInitNode() fires queries
> >> to foreign servers, those would be fired while EXPLAINing a query as well.
> >> We want to avoid that. Instead, we can run EXPLAIN on that query at foreign
> >> server. But again, not all foreign servers would be able to EXPLAIN the
> >> query e.g. file_fdw. OR totally avoid firing query during ExecInitNode(),
> >> if it's for EXPLAIN (except for ANALYSE may be).
>
> > Agreed that we wouldn't want to actually run a query when it's just
> > being explain'd. If the FDW can't tell the difference then we'd need to
> > address that, of course.
>
> EXEC_FLAG_EXPLAIN_ONLY ...
Yeah, figured there should be a way. Still not sure that kicking the
query off from ExecInitNode() is a good idea though. Perhaps it could
be optional somehow. I really like the idea of being able to make
Append work in an async mode where it's pulling data from multiple
sources at the same time, but it's a fair bit of work.
Thanks,
Stephen