Re: JIT: The nullness of casetest.value can be determined at the JIT compile time.

Andreas Karlsson <andreas@proxel.se>

From: Andreas Karlsson <andreas@proxel.se>
To: Xing Guo <higuoxing@gmail.com>, pgsql-hackers@lists.postgresql.org
Date: 2024-09-03T12:09:04Z
Lists: pgsql-hackers

Attachments

On 8/31/24 10:04 AM, Xing Guo wrote:
> The nullness of casetest.value can be determined at the JIT compile
> time. We can emit fewer codes by utilizing this property. The attached
> patch is trying to fix it.

I have not reviewed the code yet but the idea seems good.

But I wonder if we shouldn't instead simplify the code a bit by 
specializing these steps when generating them instead of doing the work 
runtime/while generating machine code. Yes, I doubt the performance 
benefits matter but I personally think the code is cleaner before my 
patch than after it.

Long term it would be nice to get rid off 
caseValue_datum/domainValue_datum as mentioned by Andres[1] but that is 
a bigger job so think that either your patch or my patch would make 
sense to apply before that.

1. 
https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=a7f107df2b700c859e4d9ad2ca66b07a465d6223

Andreas

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Simplify executor's handling of CaseTestExpr & CoerceToDomainValue.

  2. Evaluate arguments of correlated SubPlans in the referencing ExprState