X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=db-sqlite%2Fsqlite-sql.lisp;h=9b67f380b25cc7f9a1f35a9b3e69e23eedc2e0a0;hb=c4da3cfcbb955395d8a556e1f89aadad696302b7;hp=805597b0bd086a8faea3c2080d89616d3faaa2ce;hpb=5691bb90517d7c565a141d131da76c3de1f8d566;p=clsql.git diff --git a/db-sqlite/sqlite-sql.lisp b/db-sqlite/sqlite-sql.lisp index 805597b..9b67f38 100644 --- a/db-sqlite/sqlite-sql.lisp +++ b/db-sqlite/sqlite-sql.lisp @@ -78,7 +78,7 @@ (handler-case (multiple-value-bind (data row-n col-n) (sqlite:sqlite-get-table (sqlite-db database) query-expression) - #-clisp (declare (type sqlite:sqlite-row-pointer data)) + #-clisp (declare (type sqlite:sqlite-row-pointer-type data)) (if (= row-n 0) nil (prog1 @@ -103,7 +103,7 @@ (vm (sqlite:make-null-vm) :type sqlite:sqlite-vm-pointer) (first-row (sqlite:make-null-row) - :type sqlite:sqlite-row-pointer) + :type sqlite:sqlite-row-pointer-type) (n-col 0 :type fixnum)) #+clisp (defstruct sqlite-result-set @@ -124,7 +124,7 @@ (multiple-value-bind (n-col cols col-names) (sqlite:sqlite-step vm) (declare (ignore col-names) - #-clisp (type sqlite:sqlite-row-pointer cols) + #-clisp (type sqlite:sqlite-row-pointer-type cols) ) (setf (sqlite-result-set-first-row result-set) cols (sqlite-result-set-n-col result-set) n-col) @@ -156,7 +156,7 @@ (multiple-value-bind (n new-row col-names) (sqlite:sqlite-step (sqlite-result-set-vm result-set)) (declare (ignore n col-names) - #-clisp (type sqlite:sqlite-row-pointer new-row) + #-clisp (type sqlite:sqlite-row-pointer-type new-row) ) (if (sqlite:null-row-p new-row) (return-from database-store-next-row nil) @@ -282,3 +282,21 @@ (defmethod database-sequence-last (sequence-name (database sqlite-database)) (declare (ignore sequence-name))) + +(defmethod database-create (connection-spec (type (eql :sqlite))) + (declare (ignore connection-spec)) + ;; databases are created automatically by SQLite + t) + +(defmethod database-destroy (connection-spec (type (eql :sqlite))) + (destructuring-bind (name) connection-spec + (if (probe-file name) + (delete-file name) + nil))) + +(defmethod database-probe (connection-spec (type (eql :sqlite))) + (destructuring-bind (name) connection-spec + ;; TODO: Add a test that this file is a real sqlite database + (and (probe-file name) t))) + +