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.
regards, tom lane