On 3 July 2017 at 05:10, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> I wrote:
>> Any ideas what's wrong there?
>
> Hah: the answer is that query_hash's split() call is broken.
> "man perlfunc" quoth
>
> split Splits the string EXPR into a list of strings and returns that
> list. By default, empty leading fields are preserved, and
> empty trailing ones are deleted.
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
> In the case at hand, the SQL query returns something like
> "|physical|||t|10338|||0/302B7E8" with normal timing, but with
> enough delay in there, you get "|physical|||t|11542|||" which
> triggers split's default behavior of ignoring the trailing empty
> fields. It looks like the way to get split to not do that is
> to pass it a "limit" of -1.
That's my bad.
(Insert dark muttering about Perl here).
Thanks for spotting it.
-- Craig Ringer http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training & Services