r8998: conditionalize shell command for windows
[clsql.git] / db-sqlite / sqlite-sql.lisp
index 5a41b4d10ddef7273e9f2da8308ef21d46cd90e2..1f3c15855ffdbdd1b16c8ae063ec2fe8488bce40 100644 (file)
@@ -41,6 +41,8 @@
   (handler-case
       (make-instance 'sqlite-database
                     :name (database-name-from-spec connection-spec :sqlite)
+                    :database-type :sqlite
+                    :connection-spec connection-spec
                     :sqlite-db (sqlite:sqlite-open (first connection-spec)))
     (sqlite:sqlite-error (err)
       (error 'clsql-connect-error
 
 (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
+    (or (string-equal ":memory:" name)
+       (and (probe-file name) t))))
+
+
+