Re: SLOPE - Planner optimizations on monotonic expressions. - Mailing list pgsql-hackers

From Alexandre Felipe
Subject Re: SLOPE - Planner optimizations on monotonic expressions.
Date
Msg-id CAE8JnxMxePAVgi2BuM=_u1_G=6Bt9YoOWuPS=MTW2j9VWGV2Gg@mail.gmail.com
Whole thread
In response to SLOPE - Planner optimizations on monotonic expressions.  (Alexandre Felipe <o.alexandre.felipe@gmail.com>)
Responses Re: SLOPE - Planner optimizations on monotonic expressions.
List pgsql-hackers
This patch set adds 0007 "FIX NaN special cases"
filter the index pathkeys that could produce NaN values out of order

By special values I mean the non-real numeric values +Infinity, -Infinity, NaN.

Cases considered.
(1) Input type supports special values, and functions are decreasing.
(2) Adding or subtracting infinity to a variable of a type that supports special values.
(3) Multiplication by infinity, as the 0 * Infinity is out of order.
(4) Dividing by infinity a variable that supports special values.

The case (1) is treated when building the pathkey to handle properly cases
like (1 - (1 - x)) where the expression is increased but depends on some
decreasing sub expression.


Regards,
Alexandre



On Sun, May 10, 2026 at 4:53 PM Alexandre Felipe <o.alexandre.felipe@gmail.com> wrote:

On Fri, May 8, 2026 at 11:19 PM Zsolt Parragi <zsolt.parragi@percona.com> wrote:
I found one more corner case with infinities (same applies also with
negative infinity):

This will restrict a lot of cases.


slope_corner_cases.sql enumerate experssions and orders producing
permutations of (-inf, -1, 0, 1, +inf, nan) mapped to (1,2,3,4,5,6)
to visualize other similar corner cases.

Apparently the violations boil down to two cases
* All basic arithmetic operations with infinity constant (with a lucky exception x - inf)
* Every decreasing function where the index key.
e.g. `-x desc` would have NaNs first

Should I simply detect and disable the above cases?

sqrt(x < 0) already raise an exception, is it safe to assume that for all the limited domain functions?



Attachment

pgsql-hackers by date:

Previous
From: Shinya Kato
Date:
Subject: Add autovacuum_warning to surface concurrent vacuum collisions
Next
From: Atsushi Torikoshi
Date:
Subject: Re: RFC: Allow EXPLAIN to Output Page Fault Information