Tom wrote: > At this point it should move to pghackers, I think. (responding to a patch for ISO 8601 "Time Intervals" in pgsql-patches)
Looks like I'll take a shot at more broadly hacking the postgresql time interval code. Before doing so, I wanted to ask opinions regarding what the "right" behavior is of various timestamp/interval operations. I think the best way ask the specific questions is to ask a quiz highlighting some of the unexpected behavior with the current implementation. 1. What should this expression give: select '0.01 years'::interval > '0.01 months'::interval; A) False - the first is 0 months, the second is about 25000 seconds. B) True - one is about 300000 seconds, the other is about 25000. C) An error - fractional dates are asking for trouble. D) Something else -- please tell me. 2. If I have this expression: select '2003-01-31'::timestamp + '2 months', '2003-01-31'::timestamp + '1 month' + '1 month' '2003-01-31'::timestamp + '0.5 months'::interval * 4; would I expect the results to: A) All be different. The first is 89 days, (Mar 31, because it's the last day of Mar). the second 86 days, (Mar 28, because February clips the date) and the third 90 days (Apr 01, because half-months are 15 days). B) All should be the same. Two months is two months no matter how you slice it. C) An error - with fractional months being undefined. D) Something else -- please tell me. 3. Or odd behavior with time-zones. select '2002-01-01'::timestamp + '6 months', '2002-01-01'::timestamp + '181 days', '2002-01-01'::timestamp + '4344 hours'; Note that those months have 181 days, and 4344 is 181 days * 24 hours. I would expect: A) The first one represents midnight on 2002-07-01. The second two one hour different (1AM) to make up for the missed hour on daylight savings. B) The first two expressions (Days and Months) are both "calendar time" so they'd both be midnight. Only the third one would be 1AM. D) Something else -- please tell me. To give away the answers... (A) Appears to be current behavior. (B) Is one possible proposal that started being discussed on PGPatches. (C) Is one other possible proposal that mentioned on PGPatches. (D) Would be appreciated. I'd love to hear what any specs, especially the SQL spec has to say for it. Ron ---------------------------(end of broadcast)--------------------------- TIP 4: Don't 'kill -9' the postmaster