r9344: fix type on sqlite
[clsql.git] / db-sqlite / sqlite-sql.lisp
index d07be2a5f13e3814c22694d23d003ebf3476003d..6d7bbfa63f612627ea55e2b399e1a29ce379eb4d 100644 (file)
            collect
            (case type
              ((:int :integer :tinyint :long :bigint)
-              :integer)
+              :int32)
              ((:float :double)
               :double)
              ((:numeric)
          (loop for i = 0 then (1+ i)
                for rest on list
                do (setf (car rest)
+                        #-clisp
+                        (clsql-uffi:convert-raw-field
+                         (uffi:deref-array
+                          (uffi:deref-pointer row 'sqlite:sqlite-row-pointer) '(:array (* :unsigned-char)) i)
+                         result-types
+                         i)
+                        #+clisp
                         (let ((type (if result-types
                                         (nth i result-types)
                                         :string))
                             (:double
                              (when val
                                (coerce
-                                (read-from-string (sqlite:sqlite-aref row i))
+                                (read-from-string val)
                                 'double-float)))))))
          (sqlite:sqlite-free-row row)
          t))))