Executor question

Поиск
Список
Период
Сортировка
От Andrew Gierth
Тема Executor question
Дата
Msg-id 87vdyssmf0.fsf@news-spur.riddles.org.uk
обсуждение исходный текст
Ответы Re: Executor question  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
While trying to construct testcases for a patch, I ran into this:

execAmi.c has a function ExecMayReturnRawTuples which indicates whether
a given plan might return tuples that come straight from a table rather
than having been projected.

InitPlan() uses this to force the addition of a junk filter to INSERT
or SELECT INTO queries that return raw tuples, with this comment:
* Initialize the junk filter if needed.  SELECT and INSERT queries need a* filter if there are any junk attrs in the
tlist. INSERT and SELECT* INTO also need a filter if the plan may return raw disk tuples (else* heap_insert will be
scribblingon the source relation!). UPDATE and
 

However, tracing through the code suggests that neither ExecInsert not
intorel_receive will modify a passed raw tuple - ExecInsert calls
ExecMaterializeSlot before heap_insert, and intorel_receive calls
ExecCopySlotTuple before heap_insert.

So is the ExecMayReturnRawTuples and corresponding ExecFilterJunk needed
at all? Or am I missing something?

-- 
Andrew (irc:RhodiumToad)


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

Предыдущее
От: Stephen Frost
Дата:
Сообщение: Re: pg_dump(all) library
Следующее
От: Kenneth Marshall
Дата:
Сообщение: Re: [RFC] Unsigned integer support.