r9129: case fixes
[clsql.git] / db-sqlite / sqlite-sql.lisp
index 1ea5599a468753eb2acaf689c420ab96d31f6785..9b7a8fceae594b08d404e4541d544fa0d1a23e6c 100644 (file)
   ;; Query is copied from .table command of sqlite comamnd line utility.
   (remove-if #'(lambda (s)
                  (and (>= (length s) 11)
-                      (string= (subseq s 0 11) "_clsql_seq_")))
+                      (string= (subseq s 0 11) "_CLSQL_SEQ_")))
              (mapcar #'car (database-query
                             "SELECT name FROM sqlite_master WHERE type='table' UNION ALL SELECT name FROM sqlite_temp_master WHERE type='table' ORDER BY name"
                             database '()))))
                  "SELECT name FROM sqlite_master WHERE type='index' UNION ALL SELECT name FROM sqlite_temp_master WHERE type='index' ORDER BY name"
                  database nil)))
 
+(defmethod database-list-table-indexes (table (database sqlite-database)
+                                       &key (owner nil))
+  (declare (ignore owner))
+  (let ((*print-circle* nil))
+    (mapcar #'car 
+           (database-query
+            (format
+             nil
+             "SELECT name FROM sqlite_master WHERE type='index' AND tbl_name='~A' UNION ALL SELECT name FROM sqlite_temp_master WHERE type='index' AND tbl_name='~A' ORDER BY name"
+             table table)
+            database nil))))
+
 (declaim (inline sqlite-table-info))
 (defun sqlite-table-info (table database)
   (database-query (format nil "PRAGMA table_info('~A')" table)
        return (third field-info)))
 
 (defun %sequence-name-to-table-name (sequence-name)
-  (concatenate 'string "_clsql_seq_" (sql-escape sequence-name)))
+  (concatenate 'string "_CLSQL_SEQ_" (sql-escape sequence-name)))
 
 (defun %table-name-to-sequence-name (table-name)
   (and (>= (length table-name) 11)
-       (string= (subseq table-name 0 11) "_clsql_seq_")
+       (string= (subseq table-name 0 11) "_CLSQL_SEQ_")
        (subseq table-name 11)))
 
 
     (or (string-equal ":memory:" name)
        (and (probe-file name) t))))
 
+;;; Database capabilities
+
+(defmethod db-type-has-boolean-where? ((db-type (eql :sqlite)))
+  nil)
+