Tom Lane wrote:
> "Brendan Jurd" <[EMAIL PROTECTED]> writes:
> > However, in from_char(), the reverse is not true.  Looking at the code
> > snippet above, the digit is scanned straight into tmfc->d unaltered
> > (this value is later copied directly to tm->tm_wday circa line 3394).
> > Unless I'm missing something, when converting to text, 'D' yields 1-7,
> > but when converting back from text, 'D' expects 0-6.
> 
> Although this does look like a bug, I'm not sure it matters, because
> AFAICS there is no code path that will look at the value of tm_wday
> while constructing a timestamp value from a struct tm.  I'm inclined
> not to risk messing with it just before RC1 unless a visible fault
> can be demonstrated.

Fixed in 8.3, patch attached.

-- 
  Bruce Momjian  <[EMAIL PROTECTED]>          http://momjian.us
  EnterpriseDB                               http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +
Index: src/backend/utils/adt/formatting.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/utils/adt/formatting.c,v
retrieving revision 1.123
diff -c -c -r1.123 formatting.c
*** src/backend/utils/adt/formatting.c	13 Feb 2007 02:00:55 -0000	1.123
--- src/backend/utils/adt/formatting.c	14 Feb 2007 05:07:34 -0000
***************
*** 2484,2489 ****
--- 2484,2490 ----
  			else
  			{
  				sscanf(inout, "%1d", &tmfc->d);
+ 				tmfc->d--;
  				return strspace_len(inout) + 1 + SKIP_THth(suf);
  			}
  			break;
---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
       choose an index scan if your joining column's datatypes do not
       match

Reply via email to