Re: infinite histogram bounds and nan (Re: comment regarding double timestamps; and, infinite timestamps and NaN)

2020-01-02 Thread Tom Lane
Justin Pryzby writes: > On Mon, Dec 30, 2019 at 02:18:17PM -0500, Tom Lane wrote: >> This answer is simply broken. You've caused it to estimate half >> of the bucket, which is an insane estimate for the given bucket >> boundaries and WHERE constraint. > I'm fine if the isnan() logic changes,

infinite histogram bounds and nan (Re: comment regarding double timestamps; and, infinite timestamps and NaN)

2020-01-02 Thread Justin Pryzby
On Mon, Dec 30, 2019 at 02:18:17PM -0500, Tom Lane wrote: > > On v12, my test gives: > > |DROP TABLE t; CREATE TABLE t(t) AS SELECT generate_series(now(), now()+'1 > > day', '5 minutes'); > > |INSERT INTO t VALUES('-infinity'); > > |ALTER TABLE t ALTER t SET STATISTICS 1; ANALYZE t; > > |explain

Re: comment regarding double timestamps; and, infinite timestamps and NaN

2019-12-30 Thread Tom Lane
Justin Pryzby writes: > On Mon, Dec 30, 2019 at 09:05:24AM -0500, Tom Lane wrote: >> Uh, what? This seems completely wrong to me. We could possibly >> promote DT_NOBEGIN and DT_NOEND to +/- infinity (not NaN), but >> I don't really see the point. They'll compare to other timestamp >> values

Re: comment regarding double timestamps; and, infinite timestamps and NaN

2019-12-30 Thread Justin Pryzby
On Mon, Dec 30, 2019 at 09:05:24AM -0500, Tom Lane wrote: > Justin Pryzby writes: > > That seems to be only used for ineq_histogram_selectivity() interpolation of > > histogram bins. It looks to me that at least isn't working for "special > > values", and needs to use something other than

Re: comment regarding double timestamps; and, infinite timestamps and NaN

2019-12-30 Thread Tom Lane
Justin Pryzby writes: > selfuncs.c convert_to_scalar() says: > |* The several datatypes representing absolute times are all converted > |* to Timestamp, which is actually a double, and then we just use that > |* double value. > So I propose it should say something like: > |* The several

comment regarding double timestamps; and, infinite timestamps and NaN

2019-12-29 Thread Justin Pryzby
selfuncs.c convert_to_scalar() says: |* The several datatypes representing absolute times are all converted |* to Timestamp, which is actually a double, and then we just use that |* double value. Note this will give correct results even for the "special" |* values of Timestamp, since those are