Further internationalization.
[clsql.git] / db-sqlite3 / sqlite3-sql.lisp
index 1ba6b0ba68649deee35d6a367d1b9bc826095f08..927716a0c356f01a56861684bec099ce8ad05a04 100644 (file)
@@ -4,12 +4,10 @@
 ;;;;
 ;;;; Name:     sqlite-sql.lisp
 ;;;; Purpose:  High-level SQLite3 interface
-;;;; Authors:  Aurelio Bignoli
+;;;; Authors:  Aurelio Bignoli & Kevin Rosenberg
 ;;;; Created:  Oct 2004
 ;;;;
-;;;; $Id$
-;;;;
-;;;; This file, part of CLSQL, is Copyright (c) 2004 by Aurelio Bignoli
+;;;; This file, part of CLSQL, is Copyright (c) 2004-2010 by Aurelio Bignoli & Kevin Rosenberg
 ;;;;
 ;;;; CLSQL users are granted the rights to distribute and use this software
 ;;;; as governed by the terms of the Lisp Lesser GNU Public License
                          (if (eq (first types) :blob)
                              (clsql-uffi:convert-raw-field
                               (sqlite3:sqlite3-column-blob stmt i)
-                              types 0
-                              (sqlite3:sqlite3-column-bytes stmt i))
+                              (car types)
+                              :length (sqlite3:sqlite3-column-bytes stmt i)
+                              :encoding (encoding database))
                              (clsql-uffi:convert-raw-field
                               (sqlite3:sqlite3-column-text stmt i)
-                              types 0))))
+                              (car types)
+                              :encoding (encoding database)))))
           ;; Advance result set cursor.
           (handler-case
               (unless (sqlite3:sqlite3-step stmt)
                                 collect (if (eq (first types) :blob)
                                             (clsql-uffi:convert-raw-field
                                              (sqlite3:sqlite3-column-blob stmt i)
-                                             types 0
-                                             (sqlite3:sqlite3-column-bytes stmt i))
+                                             (car types)
+                                             :length (sqlite3:sqlite3-column-bytes stmt i)
+                                             :encoding (encoding database))
                                             (clsql-uffi:convert-raw-field
                                              (sqlite3:sqlite3-column-text stmt i)
-                                             types 0)))))
+                                             (car types)
+                                             :encoding (encoding database))))))
                    (when field-names
                      (setf col-names (loop for n from 0 below n-col
                                            collect (sqlite3:sqlite3-column-name stmt n))))
                                     (database sqlite3-database)
                                     &key (owner nil))
   (declare (ignore owner))
-  
+
   (loop for field-info in (sqlite3-table-info table database)
       when (string= attribute (second field-info))
       return
         (let* ((raw-type (third field-info))
                (start-length (position #\( raw-type))
-               (type (string-trim '(#\space #\tab #\newline)
+               (type (string-trim clsql-sys::+whitespace-chars+
                                  (if start-length
                                      (subseq raw-type 0 start-length)
                                      raw-type)))