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 |
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 |