I think I found a pretty nasty bug; the array parser loop foreven on empty arrays, eating all the RAM it can.
Triggering it is really simple, just select an empty array.
The effect is directly visible with:
(funcall (cl-postgres::read-array-value #'parse-integer) "{}")
I think there's something wrong in the following sexp in READ-ARRAY-VALUE:
(loop :for x := arr :then (car x) :while (listp x) :collect (length x))
If ARR is nil, it loops forever since both (listp nil) and (car nil) yield t.
I'm not sure I understand how the code works for multi-dimensional arrays, so I'd prefer not to break something trying a fix; would you mind fix it ?
Thank you.
Best regards,