Re: [HACKERS] TIME QUALIFICATION

Поиск
Список
Период
Сортировка
От Vadim Mikheev
Тема Re: [HACKERS] TIME QUALIFICATION
Дата
Msg-id 36C30DA1.70A81C78@krs.ru
обсуждение исходный текст
Ответ на Re: [HACKERS] TIME QUALIFICATION  (jwieck@debis.com (Jan Wieck))
Ответы Re: [HACKERS] TIME QUALIFICATION  (jwieck@debis.com (Jan Wieck))
Список pgsql-hackers
Jan Wieck wrote:
> 
>     For  that  preprocessing  required  to  associate  RTE's with
>     snapshots I need the exact output of the  rewrite  system  at
>     ExecutorStart() time, so I'm able to find all the RTE's.
> 
>     So  far  I've found that the planner NULL's out subselects in
>     _make_subplan().  A first (very little) test showed, that  it
>     seems  to  work without doing so too.  Who coded that and why
>     is it done there?

Do you mean subselect.c:147 line:
slink->subselect = NULL;    /* cool ?! */

? 

As I remember this is done to don't copy subquery' Query
node in copyObject when copying plan. Actually, using 
Query node in Executor is annoying me for ~ 1 year:
Executor need not in entire Query node, only in range table!
Using Query in Executor is bad for prepared plans: we do
copying and storing of mostly useless Query node...
This would be nice to have some new TopPlan node with
upmost plan, range table and some other things (I had to
add some fields to Plan node itself for subqueries while
these fields should be only in topmost plan node) and get rid
of using Query in Executor. Query is result of parsing,
plan is result of planning and source for execution.

If you don't want to implement TopPlan node then you could
allocate new SubLink node in subselect.c:_make_subplan()
to be used in node->sublink...

Vadim


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

Предыдущее
От: Oleg Broytmann
Дата:
Сообщение: Re: [HACKERS] VACUUM ANALYZE problem on linux
Следующее
От: "Thomas G. Lockhart"
Дата:
Сообщение: Re: [HACKERS] date_part() BUG?