Re: LLVM jit and matview - Mailing list pgsql-hackers

From Alvaro Herrera
Subject Re: LLVM jit and matview
Date
Msg-id 20180725221113.q5bsc2qqnhbghxtt@alvherre.pgsql
Whole thread Raw
In response to Re: LLVM jit and matview  (Andres Freund <andres@anarazel.de>)
Responses Re: LLVM jit and matview  (Andres Freund <andres@anarazel.de>)
Re: LLVM jit and matview  (Andres Freund <andres@anarazel.de>)
List pgsql-hackers
On 2018-Jul-25, Andres Freund wrote:

> The fix is easy, releasing the JIT context should just happen in
> FreeExecutorState(). Only thing is that that function has the following
> comment in the header:
>  * Note: this is not responsible for releasing non-memory resources,
>  * such as open relations or buffer pins.  But it will shut down any
>  * still-active ExprContexts within the EState.  That is sufficient
>  * cleanup for situations where the EState has only been used for expression
>  * evaluation, and not to run a complete Plan.
> 
> I don't really think throwing away functions is a violation of that, but
> I think it's possible to argue the other way?

I suppose the other possible way about it is to say estate->es_jit in a
local variable so that you can call it after FreeExecutorState.  But
what would be the advantage of avoiding the context release inside
FreeExecutorState?  It seems pretty appropriate to me to do it there.
You could argue that the JIT context is definitely part of the estate
being freed.  Just amend the comment, no?

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


pgsql-hackers by date:

Previous
From: Simon Muller
Date:
Subject: Re: Allow COPY's 'text' format to output a header
Next
From: Andres Freund
Date:
Subject: Re: LLVM jit and matview