On Mon, Jan 24, 2011 at 12:38, Marijn Haverbeke marijnh@gmail.com wrote:
Hi Slobodan,
I've pushed a patch to fix this. You now get "0 milliseconds" when serializing an interval whose components are all 0. I hope that solves the problem.
Best, Marijn
Hi Marijn,
In this case, the postgresql receives '0 milliseconds' which it doesn't like and reports an syntax error, but I have made a small change, that corrects this and outputs
interval '0 milliseconds'
which postgresql accepts happily. I hope I have managed to follow the spirit of the postmodern code and the algorythm around the part that I have changed.
Here is the diff, I hope this format is usefull for you, since this is the first time I have been using git diff. :-)
diff --git a/simple-date/cl-postgres-glue.lisp b/simple-date/cl-postgres-glue.lisp index c07e67b..d1de8e7 100644 --- a/simple-date/cl-postgres-glue.lisp +++ b/simple-date/cl-postgres-glue.lisp @@ -33,7 +33,7 @@ (defmethod cl-postgres:to-sql-string ((arg interval)) (multiple-value-bind (year month day hour min sec ms) (decode-interval arg) (if (= year month day hour min sec ms 0) - "0 milliseconds" + (values "0 milliseconds" "interval") (flet ((not-zero (x) (if (zerop x) nil x))) (values (format nil "~@[~d years ~]~@[~d months ~]~@[~d days ~]~@[~d hours ~]~@[~d minutes ~]~@[~d seconds ~]~@[~d milliseconds~]"