Re: Bad canonicalization for dateranges with 'infinity' bounds
Thomas Munro <thomas.munro@gmail.com>
From: Thomas Munro <thomas.munro@gmail.com>
To: Laurenz Albe <laurenz.albe@cybertec.at>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2019-07-14T03:27:47Z
Lists: pgsql-hackers
On Sun, Jul 14, 2019 at 12:44 AM Thomas Munro <thomas.munro@gmail.com> wrote: > Even though !(X || Y) is equivalent to !X && !Y, by my reading of > range_in(), lower.value can be uninitialised when lower.infinite is > true, and it's also a bit hard to read IMHO, so I'd probably write > that as !upper.infinite && !DATE_NOT_FINITE(upper.val) && > upper.inclusive. I don't think it can affect the result but it might > upset Valgrind or similar. I take back the bit about reading an uninitialised value (X || Y doesn't access Y if X is true... duh), but I still think the other way of putting it is a bit easier to read. YMMV. Generally, +1 for this patch. I'll wait a couple of days for more feedback to appear. -- Thomas Munro https://enterprisedb.com
Commits
-
Fix daterange canonicalization for +/- infinity.
- 613eabcd51c3 12.0 landed
- 2be355498eaf 9.4.24 landed
- 8af1fccba2b1 9.5.19 landed
- 56afeb765177 9.6.15 landed
- 955089d4d74d 10.10 landed
- f5f20deda33b 11.5 landed
- e6feef571a01 13.0 landed