]> granicus.if.org Git - postgresql/commitdiff
Fix recently added code for SQL years-months interval syntax so that
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 8 Nov 2008 20:51:49 +0000 (20:51 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 8 Nov 2008 20:51:49 +0000 (20:51 +0000)
it behaves correctly for a leading minus sign, zero year value, and
nonzero month value.  Per discussion with Ron Mayer.

src/backend/utils/adt/datetime.c

index 0ec29c7cb8a901774780e3938d301a6dab9dfce7..8efe2b22f2c256ecf35570c95f374b6ddc8445a5 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/utils/adt/datetime.c,v 1.195 2008/10/02 13:47:38 tgl Exp $
+ *       $PostgreSQL: pgsql/src/backend/utils/adt/datetime.c,v 1.196 2008/11/08 20:51:49 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -2863,7 +2863,7 @@ DecodeInterval(char **field, int *ftype, int nf, int range,
                                        if (*cp != '\0')
                                                return DTERR_BAD_FORMAT;
                                        type = DTK_MONTH;
-                                       if (val < 0)
+                                       if (*field[i] == '-')
                                                val2 = -val2;
                                        val = val * MONTHS_PER_YEAR + val2;
                                        fval = 0;