Re: FDW / list of needed columns, WHERE conditions (in PlanForeignScan)

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: FDW / list of needed columns, WHERE conditions (in PlanForeignScan)
Дата
Msg-id 13762.1338240037@sss.pgh.pa.us
обсуждение исходный текст
Ответ на FDW / list of needed columns, WHERE conditions (in PlanForeignScan)  (Tomas Vondra <tv@fuzzy.cz>)
Ответы Re: FDW / list of needed columns, WHERE conditions (in PlanForeignScan)  (Tomas Vondra <tv@fuzzy.cz>)
Список pgsql-hackers
Tomas Vondra <tv@fuzzy.cz> writes:
> I'm writing my first FDW, and I need to get the list of columns I
> actually need to fetch when planning the query. I do want to fetch only
> the columns that are actually needed, not all of them.

reltargetlist and attr_needed only tell you about columns the scan has
to *output* (ie, they are used in join conditions or the final result).
Vars that are only mentioned in baserestrict conditions aren't
included.  So you'd need to do something like pull_varattnos on the
baserestrictinfo list and union that with attr_needed.

> Also, I'd like to apply as much restrictions as possible when executing
> the plan. I see there's PlanState->qual, described as "implicitly-ANDed
> qual conditions", which I assume is what I need. But this seems to be
> available only in BeginForeignScan (as ss.ps.qual in ForeignScanState),
> not in planning which is the place where I need to compute estimates
> etc. Where do I get this, when planning the query?

Same answer, rel->baserestrictinfo.
        regards, tom lane


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tomas Vondra
Дата:
Сообщение: FDW / list of needed columns, WHERE conditions (in PlanForeignScan)
Следующее
От: Marti Raudsepp
Дата:
Сообщение: Re: Bogus nestloop rows estimate in 8.4.7