X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=db-sqlite3%2Fsqlite3-sql.lisp;h=4f953d013212fc5d63d9dd02026745c7bc8ecb8d;hb=0ef04d282f3a3ceaba8e0a439802c1b94feb08f3;hp=7b16b48b50319c967d4bc4876c96e327e61a8071;hpb=4332610851d855ebc858f231f06cff81c675e5f2;p=clsql.git diff --git a/db-sqlite3/sqlite3-sql.lisp b/db-sqlite3/sqlite3-sql.lisp index 7b16b48..4f953d0 100644 --- a/db-sqlite3/sqlite3-sql.lisp +++ b/db-sqlite3/sqlite3-sql.lisp @@ -205,11 +205,13 @@ (sqlite3:sqlite3-column-blob stmt i) (car types) :length (sqlite3:sqlite3-column-bytes stmt i) - :encoding (encoding database)) + :encoding (or (encoding database) + :utf-8)) (clsql-uffi:convert-raw-field (sqlite3:sqlite3-column-text stmt i) (car types) - :encoding (encoding database)))))) + :encoding (or (encoding database) + :utf-8)))))) (when field-names (setf col-names (loop for n from 0 below n-col collect (sqlite3:sqlite3-column-name stmt n)))) @@ -270,8 +272,9 @@ (declaim (inline sqlite3-table-info)) (defun sqlite3-table-info (table database) - (database-query (format nil "PRAGMA table_info('~A')" table) - database nil nil)) + (let ((sql (format nil "PRAGMA table_info('~A')" + (clsql-sys::unescaped-database-identifier table)))) + (database-query sql database nil nil))) (defmethod database-list-attributes (table (database sqlite3-database) &key (owner nil)) @@ -283,9 +286,10 @@ (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)) + when (string= (clsql-sys::unescaped-database-identifier attribute) + (second field-info)) return (let* ((raw-type (third field-info)) (start-length (position #\( raw-type))