Re: GiST: interpretation of NaN from penalty function - Mailing list pgsql-hackers

From Andrew Borodin
Subject Re: GiST: interpretation of NaN from penalty function
Date
Msg-id CAJEAwVEnTeg+yyoAQWZyYTTy0h3MLt77pjoVRwkkMuDKOi0LoA@mail.gmail.com
Whole thread Raw
In response to Re: GiST: interpretation of NaN from penalty function  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
> Certainly, "NaN means infinity", as your patch proposes, has no more basis to it than "NaN means zero".
You are absolutley right. Now I see that best interpretation is "NaN
means NaN". Seems like we need only drop a check. Nodes with NaN
penalties will be considered even worser than those with infinity
penalty.
Penalty calculation is CPU performance critical, it is called for
every tuple on page along insertion path. Ommiting this check will
speed this up...a tiny bit.
> If the penalty function doesn't like that interpretation, it shouldn't return NaN.
It may return NaN accidentally. If NaN will pass through union()
function then index will be poisoned.
That's not a good contract to remember for extension developer.


Regards, Andrey Borodin.



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Use pread and pwrite instead of lseek + write and read
Next
From: Robert Haas
Date:
Subject: Re: RLS related docs