Remove CVS $Id$ keyword
[clsql.git] / sql / fddl.lisp
index 6363f2618f9b3822c767dcf856db65a76ff78adb..50fe159c2622f0836b01a95b7fcdf9286bcedc6d 100644 (file)
@@ -1,8 +1,6 @@
 ;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
 ;;;; *************************************************************************
 ;;;;
-;;;; $Id$
-;;;;
 ;;;; The CLSQL Functional Data Definition Language (FDDL)
 ;;;; including functions for schema manipulation. Currently supported
 ;;;; SQL objects include tables, views, indexes, attributes and
@@ -23,8 +21,7 @@
 (defun database-identifier (name database)
   (sql-escape (etypecase name
                 ;; honor case of strings
-                (string name
-                        #+nil (convert-to-db-default-case name database))
+                (string name)
                 (sql-ident (sql-output name database))
                 (symbol (sql-output name database)))))
 
@@ -67,16 +64,13 @@ the table.  CONSTRAINTS is a string representing an SQL table
 constraint expression or a list of such strings. With MySQL
 databases, if TRANSACTIONS is t an InnoDB table is created which
 supports transactions."
-  (let* ((table-name (etypecase name
-                       (symbol (sql-expression :attribute name))
-                       (string (sql-expression :attribute name))
-                       (sql-ident name)))
-         (stmt (make-instance 'sql-create-table
-                              :name table-name
-                              :columns description
-                              :modifiers constraints
-                              :transactions transactions)))
-    (execute-command stmt :database database)))
+  (execute-command
+   (make-instance 'sql-create-table
+                  :name name
+                  :columns description
+                  :modifiers constraints
+                  :transactions transactions)
+   :database database))
 
 (defun drop-table (name &key (if-does-not-exist :error)
                              (database *default-database*)
@@ -94,8 +88,12 @@ an error is signalled if IF-DOES-NOT-EXIST is :error."
       (:error
        t))
 
-    ;; Fixme: move to clsql-oracle
-    (let ((expr (concatenate 'string "DROP TABLE " table-name)))
+    (let ((expr (etypecase name
+                  ;; keep quotes for strings for mixed-case names
+                  (string (format nil "DROP TABLE ~S" table-name))
+                  ((or symbol sql-ident)
+                   (concatenate 'string "DROP TABLE " table-name)))))
+      ;; Fixme: move to clsql-oracle
       (when (and (find-package 'clsql-oracle)
                  (eq :oracle (database-type database))
                  (eql 10 (slot-value database