Backpatch to 8.1.X fix for to_timestamp() where "PM/AM" specification
authorBruce Momjian <bruce@momjian.us>
Mon, 4 Sep 2006 19:29:18 +0000 (19:29 +0000)
committerBruce Momjian <bruce@momjian.us>
Mon, 4 Sep 2006 19:29:18 +0000 (19:29 +0000)
was eating too much user input, producing incorrect results.

src/backend/utils/adt/formatting.c

index bf3107110975b0129993bdb66ef04ae4de8bb0d0..72841b0e52612cd80e49045d0c01a36bf72eb06e 100644 (file)
@@ -1740,7 +1740,7 @@ dch_time(int arg, char *inout, int suf, bool is_to_char, bool is_interval,
                                        tmfc->am = TRUE;
                                else
                                        AMPM_ERROR;
-                               return strlen(p_inout);
+                               return strlen(P_M_STR);
                        }
                        break;
                case DCH_AM:
@@ -1759,7 +1759,7 @@ dch_time(int arg, char *inout, int suf, bool is_to_char, bool is_interval,
                                        tmfc->am = TRUE;
                                else
                                        AMPM_ERROR;
-                               return strlen(p_inout);
+                               return strlen(PM_STR);
                        }
                        break;
                case DCH_a_m:
@@ -1778,7 +1778,7 @@ dch_time(int arg, char *inout, int suf, bool is_to_char, bool is_interval,
                                        tmfc->am = TRUE;
                                else
                                        AMPM_ERROR;
-                               return strlen(p_inout);
+                               return strlen(p_m_STR);
                        }
                        break;
                case DCH_am:
@@ -1797,7 +1797,7 @@ dch_time(int arg, char *inout, int suf, bool is_to_char, bool is_interval,
                                        tmfc->am = TRUE;
                                else
                                        AMPM_ERROR;
-                               return strlen(p_inout);
+                               return strlen(pm_STR);
                        }
                        break;
                case DCH_HH: