From: Nathan Bird Date: Mon, 1 Mar 2010 20:17:55 +0000 (-0500) Subject: Adding an oodml read-sql-value case for double-float X-Git-Tag: v5.0.5~8^2^2~9 X-Git-Url: http://git.kpe.io/?p=clsql.git;a=commitdiff_plain;h=bdad8b00f0a2359c7990cf994842b809597552ed Adding an oodml read-sql-value case for double-float --- diff --git a/sql/oodml.lisp b/sql/oodml.lisp index 9dc7b0f..5cf8623 100644 --- a/sql/oodml.lisp +++ b/sql/oodml.lisp @@ -639,10 +639,19 @@ (declare (ignore database db-type)) ;; writing 1.0 writes 1, so we we *really* want a float, must do (float ...) (etypecase val - (string - (float (read-from-string val))) - (float - val))) + (string (float (read-from-string val))) + (float val))) + +(defmethod read-sql-value (val (type (eql 'double-float)) database db-type) + (declare (ignore database db-type)) + ;; writing 1.0 writes 1, so if we *really* want a float, must do (float ...) + (etypecase val + (string (float + (let ((*read-default-float-format* 'double-float)) + (read-from-string val)) + 1.0d0)) + (double-float val) + (float (coerce val 'double-float)))) (defmethod read-sql-value (val (type (eql 'boolean)) database db-type) (declare (ignore database db-type))