Re: BUG #2599: AM/PM doesn't work in to_timestamp in - Mailing list pgsql-bugs

From Bruce Momjian
Subject Re: BUG #2599: AM/PM doesn't work in to_timestamp in
Date
Msg-id 200609030347.k833lIe09824@momjian.us
Whole thread Raw
List pgsql-bugs
bruce wrote:
> Josh Tolley wrote:
> >
> > The following bug has been logged online:
> >
> > Bug reference:      2599
> > Logged by:          Josh Tolley
> > Email address:      eggyknap@gmail.com
> > PostgreSQL version: 8.1.4
> > Operating system:   Fedora Core 5
> > Description:        AM/PM doesn't work in to_timestamp in the middle of a
> > string
> > Details:
> >
> > eggyknap=# select to_timestamp('30 Aug 06:01:03.223 PM 2006', 'DD Mon
> > HH:MI:SS.MS AM YYYY'), to_timestamp('30 Aug 2006 06:01:03.223 PM', 'DD Mon
> > YYYY HH:MI:SS.MS AM');
> >        to_timestamp        |        to_timestamp
> > ---------------------------+----------------------------
> >  0001-08-30 18:01:03-08 BC | 2006-08-30 18:01:03.223-06
> >
> > This appears to happen when AM/PM isn't the last element in the string.
>
> Nice report.  The attached patch fixes it, and will be in 8.2.  I am not
> backpatching because someone might be relying on this behavior.

Sorry, I attached the wrong patch to the email.  This is the right one.

--
  Bruce Momjian   bruce@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.110
retrieving revision 1.111
diff -c -r1.110 -r1.111
*** src/backend/utils/adt/formatting.c    19 Apr 2006 18:49:09 -0000    1.110
--- src/backend/utils/adt/formatting.c    3 Sep 2006 01:22:56 -0000    1.111
***************
*** 1762,1768 ****
                      tmfc->am = TRUE;
                  else
                      AMPM_ERROR;
!                 return strlen(p_inout);
              }
              break;
          case DCH_AM:
--- 1762,1768 ----
                      tmfc->am = TRUE;
                  else
                      AMPM_ERROR;
!                 return strlen(P_M_STR);
              }
              break;
          case DCH_AM:
***************
*** 1781,1787 ****
                      tmfc->am = TRUE;
                  else
                      AMPM_ERROR;
!                 return strlen(p_inout);
              }
              break;
          case DCH_a_m:
--- 1781,1787 ----
                      tmfc->am = TRUE;
                  else
                      AMPM_ERROR;
!                 return strlen(PM_STR);
              }
              break;
          case DCH_a_m:
***************
*** 1800,1806 ****
                      tmfc->am = TRUE;
                  else
                      AMPM_ERROR;
!                 return strlen(p_inout);
              }
              break;
          case DCH_am:
--- 1800,1806 ----
                      tmfc->am = TRUE;
                  else
                      AMPM_ERROR;
!                 return strlen(p_m_STR);
              }
              break;
          case DCH_am:
***************
*** 1819,1825 ****
                      tmfc->am = TRUE;
                  else
                      AMPM_ERROR;
!                 return strlen(p_inout);
              }
              break;
          case DCH_HH:
--- 1819,1825 ----
                      tmfc->am = TRUE;
                  else
                      AMPM_ERROR;
!                 return strlen(pm_STR);
              }
              break;
          case DCH_HH:

pgsql-bugs by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: BUG #2600: dblink compile with SSL missing
Next
From: "Marc ROGLIANO"
Date:
Subject: BUG #2606: (libpq) incorrect function declaration in libpq-fe.h