From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | pgsql-hackers(at)postgreSQL(dot)org |
Subject: | Re: oh dear ... |
Date: | 2003-11-15 00:32:12 |
Message-ID: | 7824.1068856332@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
I said:
> This worked in 7.3:
> regression=# select '1999-jan-08'::date;
> ERROR: date/time field value out of range: "1999-jan-08"
> HINT: Perhaps you need a different "datestyle" setting.
> Setting DateStyle to YMD doesn't help, and in any case I'd think that
> this ought to be considered an unambiguous input format.
This appears to be an oversight in the portions of the datetime code
that we recently changed to enforce DateStyle more tightly.
Specifically, DecodeNumber was rewritten without realizing that it was
invoked in a special way when a textual month name appears in the input.
DecodeDate actually makes two passes over the input, noting the textual
month name in the first pass, and then calling DecodeNumber on only the
numeric fields in the second pass. This means that when DecodeNumber is
called for the first time, the MONTH flag may already be set. The
rewrite mistakenly assumed that in this case we must be at the second
field of an MM-DD-YY-order input.
I propose the attached patch to fix the problem. It doesn't break any
regression tests, and it appears to fix the cases noted in its comment.
Opinions on whether to apply this to 7.4?
regards, tom lane
Attachment | Content-Type | Size |
---|---|---|
unknown_filename | text/plain | 1.1 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Marc G. Fournier | 2003-11-15 00:44:33 | Re: [CORE] 7.4RC2 regression failur and not running stats |
Previous Message | Tom Lane | 2003-11-14 23:15:20 | oh dear ... |