Обсуждение: BUG #17944: Partial index on boolean field is not picked when using = while the index is created with is
BUG #17944: Partial index on boolean field is not picked when using = while the index is created with is
От
PG Bug reporting form
Дата:
The following bug has been logged on the website: Bug reference: 17944 Logged by: Ajeesh Sasidharan Email address: ajeesh2705@gmail.com PostgreSQL version: 13.8 Operating system: Linux Description: I have recently created a partial index on tables like following create index unprocessed_order_index on order (creation_date) where processed is false; When I am querying the table using processed = false like below, the index is not used SELECT count(*) from order where processed = false and creation_date < now() but the index is used while querying using processed is false SELECT count(*) from order where processed is false and creation_date < now() I was expecting to treat both = and is same, or am I wrong
PG Bug reporting form <noreply@postgresql.org> writes: > I have recently created a partial index on tables like following > create index unprocessed_order_index > on order (creation_date) where processed is false; > When I am querying the table using processed = false like below, the index > is not used > I was expecting to treat both = and is same, or am I wrong IS and = are not the same. You could argue that they have the same effect in this particular case, but there's no logic in the planner that would deduce that. regards, tom lane