Re: POC, WIP: OR-clause support for indexes

From: Alena Rybakina <lena(dot)ribackina(at)yandex(dot)ru>
To: Marcos Pegoraro <marcos(at)f10(dot)com(dot)br>, Alena Rybakina <a(dot)rybakina(at)postgrespro(dot)ru>
Cc: Andrey Lepikhov <a(dot)lepikhov(at)postgrespro(dot)ru>, pgsql-hackers(at)postgresql(dot)org, teodor(at)sigaev(dot)ru
Subject: Re: POC, WIP: OR-clause support for indexes
Date: 2023-06-26 01:47:43
Message-ID: eddaa746-d02c-35a6-561b-e9f371920b91@yandex.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi, all! Sorry I haven't written for a long time.

I finished writing the code patch for transformation "Or" expressions to
"Any" expressions. I didn't see any problems in regression tests, even
when I changed the constant at which the minimum or expression is
replaced by any at 0. I ran my patch on sqlancer and so far the code has
never fallen.

On 14.01.2023 18:45, Marcos Pegoraro wrote:
>
> I agree with your idea and try to implement it and will soon
> attach a patch with a solution.
>
> Additionally, if those OR constants repeat you'll see ...
> If all constants are the same value, fine
> explain select * from x where ((ID = 1) OR (ID = 1) OR (ID = 1));
> Index Only Scan using x_id on x  (cost=0.42..4.44 rows=1 width=4)
>   Index Cond: (id = 1)
>
> if all values are almost the same, ops
> explain select * from x where ((ID = 1) OR (ID = 1) OR (ID = 1) OR (ID
> = 2));
> Bitmap Heap Scan on x  (cost=17.73..33.45 rows=4 width=4)
>   Recheck Cond: ((id = 1) OR (id = 1) OR (id = 1) OR (id = 2))
>   ->  BitmapOr  (cost=17.73..17.73 rows=4 width=0)
>         ->  Bitmap Index Scan on x_id  (cost=0.00..4.43 rows=1 width=0)
>               Index Cond: (id = 1)
>         ->  Bitmap Index Scan on x_id  (cost=0.00..4.43 rows=1 width=0)
>               Index Cond: (id = 1)
>         ->  Bitmap Index Scan on x_id  (cost=0.00..4.43 rows=1 width=0)
>               Index Cond: (id = 1)
>         ->  Bitmap Index Scan on x_id  (cost=0.00..4.43 rows=1 width=0)
>               Index Cond: (id = 2)
>
> thanks
> Marcos
>
--

Regards,

Alena Rybakina

Attachment Content-Type Size
0001-Replace-clause-X-N1-OR-X-N2-.-with-X-ANY-N1-N2-on.patch text/x-patch 10.7 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message jian he 2023-06-26 02:04:05 Re: Do we want a hashset type?
Previous Message Tatsuo Ishii 2023-06-26 01:05:20 Re: Row pattern recognition