Tom Lane wrote:
"Heikki Linnakangas" <[EMAIL PROTECTED]> writes:
Looking closer, I don't understand how that change was supposed to do anything.


The point of that patch is to avoid an off-by-one result for years BC.
The direction of rounding in integer division with a negative numerator
is undefined in C (or at least used to be --- did C99 tighten this up?).

Oh, I see. In that case we're good. The corresponding new code in tzcode actually looks like this:

! static int
! leaps_thru_end_of(const int y)
! {
!       return (y >= 0) ? (y / 4 - y / 100 + y / 400) :
!               -(leaps_thru_end_of(-(y + 1)) + 1);
! }


--
  Heikki Linnakangas
  EnterpriseDB   http://www.enterprisedb.com

---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

              http://www.postgresql.org/docs/faq

Reply via email to