Re: "type with xxxx does not exist" when doing ExecMemoize()

Поиск
Список
Период
Сортировка
От Tender Wang
Тема Re: "type with xxxx does not exist" when doing ExecMemoize()
Дата
Msg-id CAHewXNkSWMwGb_81wK3WCVx8-W-pOHC_AhiF=AeiRdG7sva4CQ@mail.gmail.com
обсуждение исходный текст
Ответы Re: "type with xxxx does not exist" when doing ExecMemoize()  (Andrei Lepikhov <a.lepikhov@postgrespro.ru>)
Список pgsql-bugs


Andrei Lepikhov <a.lepikhov@postgrespro.ru> 于2024年2月26日周一 10:57写道:
On 25/2/2024 20:32, Tender Wang wrote:
> I think in prepare_probe_slot(), should called datumCopy as the attached
> patch does.
>
> Any thoughts? Thanks.
Thanks for the report.
I think it is better to invent a Runtime Memory Context; likewise, it is
already designed in IndexScan and derivatives. Here, you just allocate
the value in some upper memory context.
 
Also, I'm curious why such a trivial error hasn't been found for a long time
    
  I analyze this issue again. I found that the forms of qual in Memoize.sql(regress) are all like this:

  table1.c0 OP table2.c0
If table2.c0 is the param value, the probeslot->tts_values[i] just store the pointer.  The memorycontext of this pointer is
ExecutorContext not ExprContext, Reset ExprContext doesn't change the data of probeslot->tts_values[i].
So such a trivial error hasn't been found before.

--
regards,
Andrei Lepikhov
Postgres Professional



--
Tender Wang
OpenPie:  https://en.openpie.com/

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

Предыдущее
От: Alexander Lakhin
Дата:
Сообщение: Re: BUG #18363: Assert !ReindexIsProcessingIndex falsified with expression index over select from table
Следующее
От: Andrei Lepikhov
Дата:
Сообщение: Re: "type with xxxx does not exist" when doing ExecMemoize()