Hi,
I'm not sure if this is the case in the latest version of postgresql but in my version, it fails to read an empty integer correctly from the DB. The following patch fixes for me...
diff --git Postmodern/cl-postgres/interpret.lisp Postmodern/cl-postgres/\ interpret.lisp index 7d30f75..a6ce46f 100644 --- Postmodern/cl-postgres/interpret.lisp +++ Postmodern/cl-postgres/interpret.lisp @@ -196,8 +196,13 @@ used. Correct for sign bit when using integer format." (unless (< (incf pos) (length value)) (return ws))) 'simple-vector)))))
+(defun maybe-parse-integer (s) + (if (string= "" s) + :null + (parse-integer s))) + ;; Integral array types -(let ((read-integral (read-array-value #'parse-integer))) +(let ((read-integral (read-array-value #'maybe-parse-integer))) (dolist (oid '(1561 1005 1007 1016 1028)) (set-sql-reader oid read-integral)))
Cheers, Andy
Something that sounds similar to this was fixed in https://github.com/marijnh/Postmodern/commit/de3d753dbf698fe75a01f7f1544f3c0... . Could you get the latest version and see if the problem still occurs there?
Best, Marijn
postmodern-devel@common-lisp.net