pg.ddx.io  pgsql-bugs@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Andrei Lepikhov <a.lepikhov@postgrespro.ru>
To: Tender Wang <tndrwang@gmail.com>
Cc: pgsql-bugs@lists.postgresql.org
Subject: Re: "type with xxxx does not exist" when doing ExecMemoize()
Date: Mon, 26 Feb 2024 16:30:50 +0700
Message-ID: <00f65092-0b44-4b3b-9b66-6ebee90def3a@postgrespro.ru> (raw)
In-Reply-To: <CAHewXNkSWMwGb_81wK3WCVx8-W-pOHC_AhiF=AeiRdG7sva4CQ@mail.gmail.com>
References: <CAHewXNnT6N6UJkya0z-jLFzVxcwGfeRQSfhiwA+NyLg-x8iGew@mail.gmail.com>
	<d3da9856-0394-48e6-9f41-543c589e9585@postgrespro.ru>
	<CAHewXNkSWMwGb_81wK3WCVx8-W-pOHC_AhiF=AeiRdG7sva4CQ@mail.gmail.com>

On 26/2/2024 15:14, Tender Wang wrote:
> 
> 
> Andrei Lepikhov <a.lepikhov@postgrespro.ru 
> <mailto: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.
I'm not happy with using table context for the probeslot values. As I 
see, in the case of a new entry, the cache_lookup copies data from this 
slot. If a match is detected, the allocated probeslot memory piece will 
not be freed up to hash table reset. Taking this into account, should we 
invent some new runtime context?

-- 
regards,
Andrei Lepikhov
Postgres Professional






view thread (19+ messages)  latest in thread

Message-ID: <00f65092-0b44-4b3b-9b66-6ebee90def3a@postgrespro.ru>
Permalink:  ../00f65092-0b44-4b3b-9b66-6ebee90def3a@postgrespro.ru/
Also on:    postgresql.org/message-id/00f65092-0b44-4b3b-9b66-6ebee90def3a@postgrespro.ru

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-bugs@postgresql.org
  Cc: a.lepikhov@postgrespro.ru, tndrwang@gmail.com, pgsql-bugs@lists.postgresql.org
  Subject: Re: "type with xxxx does not exist" when doing ExecMemoize()
  In-Reply-To: <00f65092-0b44-4b3b-9b66-6ebee90def3a@postgrespro.ru>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox