Re: wrong query result with jit_above_cost= 0

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Andrew Gierth <andrew@tao11.riddles.org.uk>
Cc: Dmitry Dolgov <9erthalion6@gmail.com>, Rushabh Lathia <rushabh.lathia@gmail.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2018-06-26T20:56:43Z
Lists: pgsql-hackers
On 2018-06-26 21:55:07 +0100, Andrew Gierth wrote:
> >>>>> "Dmitry" == Dmitry Dolgov <9erthalion6@gmail.com> writes:
> 
>  Dmitry> Yep, my bad, forgot to turn it on. Now I see what's the
>  Dmitry> problem, one of the null fields is screwed up, will try to
>  Dmitry> figure out why is that.
> 
> The handling of nulls in grouping set results is a bit icky, see
> prepare_projection_slot in nodeAgg.c. The comment there lists a number
> of assumptions which may or may not hold true under JIT which might give
> a starting point to look for problems. (Unfortunately I'm not currently
> in a position to test on a JIT build)

I probably just screwed up a bit of code generation. I can't see any of
the more fundamental assumptions being changed by the way JITing is
done.

Greetings,

Andres Freund


Commits

  1. Reset context at the tail end of JITed EEOP_AGG_PLAIN_TRANS.

  2. Fix JITed EEOP_AGG_INIT_TRANS, which missed some state.