14 Sep 2007 Kevin Rosenberg <kevin@rosenberg.net>
[clsql.git] / sql / ooddl.lisp
index 9db898b36a428afdb435684daa5b57af15516ed6..eae4f0efdd4bc58af0b1c6ed22f7eb24016862ad 100644 (file)
@@ -104,13 +104,16 @@ in DATABASE which defaults to *DEFAULT-DATABASE*."
   t)
 
 (defmethod database-pkey-constraint ((class standard-db-class) database)
-  (let ((keylist (mapcar #'view-class-slot-column (keyslots-for-class class))))
+  (let ((keylist (mapcar #'view-class-slot-column (keyslots-for-class class)))
+        (table (view-table class)))
     (when keylist
-      (convert-to-db-default-case
-       (format nil "CONSTRAINT ~APK PRIMARY KEY~A"
-               (sql-output (view-table class) database)
-               (sql-output keylist database))
-       database))))
+      (etypecase table
+        (string
+         (format nil "CONSTRAINT \"~APK\" PRIMARY KEY~A" table
+                 (sql-output keylist database)))
+        ((or symbol sql-ident)
+         (format nil "CONSTRAINT ~APK PRIMARY KEY~A" table
+                 (sql-output keylist database)))))))
 
 (defmethod database-generate-column-definition (class slotdef database)
   (declare (ignore database class))