remove column-name-from-arg so that we use the column as specified (if it is) and...
[clsql.git] / sql / metaclasses.lisp
index bed60eeea4825fca492dbd2ebc62cf0943dc07a3..5af1a64f03719f4abea7e82e1d9ab90e9fd6ceb8 100644 (file)
         ((stringp arg)
          (sql-escape arg))))
 
-(defun column-name-from-arg (arg)
-  (cond ((symbolp arg)
-         arg)
-        ((typep arg 'sql-ident)
-         (slot-value arg 'name))
-        ((stringp arg)
-         (intern (symbol-name-default-case arg)))))
-
-
 (defun remove-keyword-arg (arglist akey)
   (let ((mylist arglist)
         (newlist ()))
       (pop-arg mylist))
     newlist))
 
+(defun set-view-table-slot (class base-table)
+  (setf (view-table class)
+        (table-name-from-arg (or (and base-table
+                                      (if (listp base-table)
+                                          (car base-table)
+                                          base-table))
+                                 (class-name class)))))
+
 (defmethod initialize-instance :around ((class standard-db-class)
                                         &rest all-keys
                                         &key direct-superclasses base-table
                                                 direct-superclasses)
                    (remove-keyword-arg all-keys :direct-superclasses)))
         (call-next-method))
-    (setf (view-table class)
-          (table-name-from-arg (or (and base-table
-                                        (if (listp base-table)
-                                            (car base-table)
-                                            base-table))
-                                   (class-name class))))
+    (set-view-table-slot class base-table)
     (register-metaclass class (nth (1+ (position :direct-slots all-keys))
                                    all-keys))))
 
                                           &allow-other-keys)
   (let ((root-class (find-class 'standard-db-object nil))
         (vmc 'standard-db-class))
-    (setf (view-table class)
-          (table-name-from-arg (sql-escape (or (and base-table
-                                                    (if (listp base-table)
-                                                        (car base-table)
-                                                        base-table))
-                                               (class-name class)))))
+    (set-view-table-slot class base-table)
     (setf (view-class-qualifier class)
           (car qualifier))
     (if (and root-class (not (equal class root-class)))
@@ -468,12 +457,9 @@ implementations."
          ;; the column slot is filled in with the slot-name,  but transformed
          ;; to be sql safe, - to _ and such.
          (setf (slot-value esd 'column)
-           (column-name-from-arg
-            (if (slot-boundp dsd 'column)
-                (delistify-dsd (view-class-slot-column dsd))
-              (column-name-from-arg
-               (sql-escape (slot-definition-name dsd))))))
-
+              (if (slot-boundp dsd 'column)
+                  (delistify-dsd (view-class-slot-column dsd))
+                  (slot-definition-name dsd)))
          (setf (slot-value esd 'db-type)
            (when (slot-boundp dsd 'db-type)
              (delistify-dsd
@@ -536,8 +522,7 @@ implementations."
                              type-predicate)))
 
          (setf (slot-value esd 'column)
-           (column-name-from-arg
-            (sql-escape (slot-definition-name dsd))))
+              (slot-definition-name dsd))
 
          (setf (slot-value esd 'db-info) nil)
          (setf (slot-value esd 'db-kind) :virtual)