Fix 'Q' format char parsing in the new to_timestamp() code. Used to crash.
authorHeikki Linnakangas <heikki@enterprisedb.com>
Mon, 10 Nov 2008 17:36:53 +0000 (17:36 +0000)
committerHeikki Linnakangas <heikki@enterprisedb.com>
Mon, 10 Nov 2008 17:36:53 +0000 (17:36 +0000)
src/backend/utils/adt/formatting.c

index 3500d86e179b626089604e98331ff2baae939a2b..8f1439152402dbc8a2d0c769d91806e03dd7e323 100644 (file)
@@ -1771,7 +1771,7 @@ from_char_set_int(int *dest, const int value, const FormatNode *node)
 
 /*
  * Read a single integer from the source string, into the int pointed to by
- * 'dest'.
+ * 'dest'. If 'dest' is NULL, the result is discarded.
  *
  * In fixed-width mode (the node does not have the FM suffix), consume at most
  * 'len' characters.
@@ -1862,7 +1862,8 @@ from_char_parse_int_len(int *dest, char **src, const int len, FormatNode *node)
                                 errdetail("Value must be in the range %d to %d.",
                                                   INT_MIN, INT_MAX)));
 
-       from_char_set_int(dest, (int) result, node);
+       if (dest != NULL)
+               from_char_set_int(dest, (int) result, node);
        return *src - init;
 }