Thread: BUG #13608: 3 argument range constructor functions
The following bug has been logged on the website: Bug reference: 13608 Logged by: Robert Kruus Email address: robert.kruus@gov.sk.ca PostgreSQL version: 9.3.9 Operating system: FreeBSD (9.2) Description: The int4range, int8range, daterange functions seem to be ignoring the 3rd argument which specifies the interval bounds. i.e. SELECT daterange('2010-01-01'::date, '2011-01-01'::date, '()'::text); daterange ------------------------- [2010-01-02,2011-01-02) It works fine for numrange, tsrange, tstzrange. i.e. SELECT numrange(1,4, '()'); numrange ---------- (1,4) PostgreSQL 9.3.9 on amd64-portbld-freebsd9.2, compiled by FreeBSD clang version 3.3 (tags/RELEASE_33/final 183502) 20130610, 64-bit
robert.kruus@gov.sk.ca writes: > The int4range, int8range, daterange functions seem to be ignoring the 3rd > argument which specifies the interval bounds. > i.e. > SELECT daterange('2010-01-01'::date, '2011-01-01'::date, '()'::text); > daterange > ------------------------- > [2010-01-02,2011-01-02) It's not ignoring it. What it's doing is canonicalizing the range so that equivalent ranges actually look the same. Note your bounds have changed. (BTW, you misquoted the result; the upper date does not change in this case, at least not for me.) See the discussion of discrete vs continuous range types at http://www.postgresql.org/docs/9.3/static/rangetypes.html#RANGETYPES-DISCRETE regards, tom lane