Re: Reduce planning time for large NOT IN lists containing NULL - Mailing list pgsql-hackers

From Ilia Evdokimov
Subject Re: Reduce planning time for large NOT IN lists containing NULL
Date
Msg-id ed61316c-2e48-45d1-9cca-dc539bfd93b9@tantorlabs.com
Whole thread Raw
In response to Re: Reduce planning time for large NOT IN lists containing NULL  (Ilia Evdokimov <ilya.evdokimov@tantorlabs.com>)
Responses Re: Reduce planning time for large NOT IN lists containing NULL
List pgsql-hackers

On 2/20/26 12:06, Ilia Evdokimov wrote:

There is already ARR_HASNULL() which allows us to detect the presence of NULL in ArrayType.

I've moved the NULL check higher, placing it immediately after DatumGetArrayTypeP(). This allows us to detect the presence of NULL elements before decontructing the array.


I tested this with several queries of the form:

WHERE x NOT IN (NULL, ...)

In my tests (with column x having detailed statistics, so selectivity estimation performs more work), planning time decreases from 5-200 ms before the patch to ~ 1-2 ms after the patch, depending on the list size.

--
Best regards.
Ilia Evdokimov,
Tantor Labs LLC,
https://tantorlabs.com/

pgsql-hackers by date:

Previous
From: Andrew Dunstan
Date:
Subject: Re: [PATCH] pg_get_domain_ddl: DDL reconstruction function for CREATE DOMAIN statement
Next
From: Ilia Evdokimov
Date:
Subject: Re: Reduce planning time for large NOT IN lists containing NULL