[PATCH] Optimize IS DISTINCT FROM NULL => IS NOT NULL - Mailing list pgsql-hackers

From Marti Raudsepp
Subject [PATCH] Optimize IS DISTINCT FROM NULL => IS NOT NULL
Date
Msg-id CABRT9RAJqPOJ9Wkjg-g1H8-ov2DWXoC=-2q5bkxT=xmq-39pGA@mail.gmail.com
Whole thread Raw
Responses Re: [PATCH] Optimize IS DISTINCT FROM NULL => IS NOT NULL  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Hi list,

This patch enables a simple optimization in
eval_const_expressions_mutator. If we know that one argument to
DistinctExpr is NULL then we can optimize it to a NullTest, which can
be an indexable expression.

For example the query:
EXPLAIN (costs off) SELECT * FROM foo WHERE j IS NOT DISTINCT FROM NULL;

Old behavior:
Seq Scan on foo
  Filter: (NOT (j IS DISTINCT FROM NULL::integer))

New behavior:
Index Scan using foo_j_idx on foo
  Index Cond: (j IS NULL)

Regards,
Marti

Attachment

pgsql-hackers by date:

Previous
From: Peter Geoghegan
Date:
Subject: Re: pg_stat_statements and planning time
Next
From: Tom Lane
Date:
Subject: Re: [PATCH] Optimize IS DISTINCT FROM NULL => IS NOT NULL