Pony's String.i64() doesn't handle a leading + sign — it only checks for -. The postgres interval style produces + prefixed numbers for mixed-sign intervals (e.g., -1 years -2 mons +3 days -04:05:06). Both the number+unit branch and the time branch in _IntervalTextCodec._decode_postgres() would fail on + tokens.
This was fixed as part of the intervalstyle support work, which added a _strip_sign helper that strips leading +/- before calling i64(). Filing this issue to document that this was a pre-existing bug independent of the multi-style work.