r9133: case handling, test report summarizing, documentation additions
[clsql.git] / base / utils.lisp
index 84e28b937bc77ff1fa69dfedf8990e853c22db31..9fb6e7c2b59c99af41079353a57270cc4376b186 100644 (file)
@@ -331,3 +331,23 @@ list of characters and replacement strings."
          (setf (char new-string dpos) c)
          (incf dpos))))))
 
+
+(eval-when (:compile-toplevel :load-toplevel :execute)
+  (when (char= #\a (schar (symbol-name '#:a) 0))
+    (pushnew :lowercase-reader *features*)))
+
+(defun symbol-name-default-case (str)
+  #-lowercase-reader
+  (string-upcase str)
+  #+lowercase-reader
+  (string-downcase str))
+
+(defmethod convert-to-db-default-case (str database)
+  (if database
+      (case (db-type-default-case (database-underlying-type database))
+       (:upper (string-upcase str))
+       (:lower (string-downcase str))
+       (t str))
+    ;; Default CommonSQL behavior is to upcase strings
+    (string-upcase str)))
+