Whilst poking at bug #4702 I noticed that PG CVS HEAD rejects use of
AD/BC notation, as well as CC (separate century) fields, in combination
with ISO-style day numbers.  I don't see the point of this.  It's
historically inaccurate, no doubt, but so is use of Gregorian counting.
So I suggest the attached fix.  Does this make anyone unhappy?

                        regards, tom lane

Index: src/backend/utils/adt/formatting.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/utils/adt/formatting.c,v
retrieving revision 1.155
diff -c -r1.155 formatting.c
*** src/backend/utils/adt/formatting.c  12 Mar 2009 00:53:25 -0000      1.155
--- src/backend/utils/adt/formatting.c  14 Mar 2009 17:37:05 -0000
***************
*** 709,721 ****
   */
  static const KeyWord DCH_keywords[] = {
  /*    name, len, id, is_digit, date_mode */
!       {"A.D.", 4, DCH_A_D, FALSE, FROM_CHAR_DATE_GREGORIAN},  /* A */
        {"A.M.", 4, DCH_A_M, FALSE, FROM_CHAR_DATE_NONE},
!       {"AD", 2, DCH_AD, FALSE, FROM_CHAR_DATE_GREGORIAN},
        {"AM", 2, DCH_AM, FALSE, FROM_CHAR_DATE_NONE},
!       {"B.C.", 4, DCH_B_C, FALSE, FROM_CHAR_DATE_GREGORIAN},  /* B */
!       {"BC", 2, DCH_BC, FALSE, FROM_CHAR_DATE_GREGORIAN},
!       {"CC", 2, DCH_CC, TRUE, FROM_CHAR_DATE_GREGORIAN},              /* C */
        {"DAY", 3, DCH_DAY, FALSE, FROM_CHAR_DATE_NONE},                /* D */
        {"DDD", 3, DCH_DDD, TRUE, FROM_CHAR_DATE_GREGORIAN},
        {"DD", 2, DCH_DD, TRUE, FROM_CHAR_DATE_GREGORIAN},
--- 709,721 ----
   */
  static const KeyWord DCH_keywords[] = {
  /*    name, len, id, is_digit, date_mode */
!       {"A.D.", 4, DCH_A_D, FALSE, FROM_CHAR_DATE_NONE},               /* A */
        {"A.M.", 4, DCH_A_M, FALSE, FROM_CHAR_DATE_NONE},
!       {"AD", 2, DCH_AD, FALSE, FROM_CHAR_DATE_NONE},
        {"AM", 2, DCH_AM, FALSE, FROM_CHAR_DATE_NONE},
!       {"B.C.", 4, DCH_B_C, FALSE, FROM_CHAR_DATE_NONE},               /* B */
!       {"BC", 2, DCH_BC, FALSE, FROM_CHAR_DATE_NONE},
!       {"CC", 2, DCH_CC, TRUE, FROM_CHAR_DATE_NONE},                   /* C */
        {"DAY", 3, DCH_DAY, FALSE, FROM_CHAR_DATE_NONE},                /* D */
        {"DDD", 3, DCH_DDD, TRUE, FROM_CHAR_DATE_GREGORIAN},
        {"DD", 2, DCH_DD, TRUE, FROM_CHAR_DATE_GREGORIAN},
***************
*** 757,769 ****
        {"YYY", 3, DCH_YYY, TRUE, FROM_CHAR_DATE_GREGORIAN},
        {"YY", 2, DCH_YY, TRUE, FROM_CHAR_DATE_GREGORIAN},
        {"Y", 1, DCH_Y, TRUE, FROM_CHAR_DATE_GREGORIAN},
!       {"a.d.", 4, DCH_a_d, FALSE, FROM_CHAR_DATE_GREGORIAN},  /* a */
        {"a.m.", 4, DCH_a_m, FALSE, FROM_CHAR_DATE_NONE},
!       {"ad", 2, DCH_ad, FALSE, FROM_CHAR_DATE_GREGORIAN},
        {"am", 2, DCH_am, FALSE, FROM_CHAR_DATE_NONE},
!       {"b.c.", 4, DCH_b_c, FALSE, FROM_CHAR_DATE_GREGORIAN},  /* b */
!       {"bc", 2, DCH_bc, FALSE, FROM_CHAR_DATE_GREGORIAN},
!       {"cc", 2, DCH_CC, TRUE, FROM_CHAR_DATE_GREGORIAN},              /* c */
        {"day", 3, DCH_day, FALSE, FROM_CHAR_DATE_NONE},                /* d */
        {"ddd", 3, DCH_DDD, TRUE, FROM_CHAR_DATE_GREGORIAN},
        {"dd", 2, DCH_DD, TRUE, FROM_CHAR_DATE_GREGORIAN},
--- 757,769 ----
        {"YYY", 3, DCH_YYY, TRUE, FROM_CHAR_DATE_GREGORIAN},
        {"YY", 2, DCH_YY, TRUE, FROM_CHAR_DATE_GREGORIAN},
        {"Y", 1, DCH_Y, TRUE, FROM_CHAR_DATE_GREGORIAN},
!       {"a.d.", 4, DCH_a_d, FALSE, FROM_CHAR_DATE_NONE},               /* a */
        {"a.m.", 4, DCH_a_m, FALSE, FROM_CHAR_DATE_NONE},
!       {"ad", 2, DCH_ad, FALSE, FROM_CHAR_DATE_NONE},
        {"am", 2, DCH_am, FALSE, FROM_CHAR_DATE_NONE},
!       {"b.c.", 4, DCH_b_c, FALSE, FROM_CHAR_DATE_NONE},               /* b */
!       {"bc", 2, DCH_bc, FALSE, FROM_CHAR_DATE_NONE},
!       {"cc", 2, DCH_CC, TRUE, FROM_CHAR_DATE_NONE},                   /* c */
        {"day", 3, DCH_day, FALSE, FROM_CHAR_DATE_NONE},                /* d */
        {"ddd", 3, DCH_DDD, TRUE, FROM_CHAR_DATE_GREGORIAN},
        {"dd", 2, DCH_DD, TRUE, FROM_CHAR_DATE_GREGORIAN},

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to