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