r11207: 03 Oct 2006 Kevin Rosenberg <kevin@rosenberg.net>
[clsql.git] / sql / utils.lisp
index a23a820ff0231b108c92c526da089ab1e4743c01..d0402e8954a7fb7b85a96f77887a5f0ad62cdd08 100644 (file)
@@ -21,7 +21,7 @@
 (defun number-to-sql-string (num)
   (etypecase num
     (integer
-     num)
+     (princ-to-string num))
     (rational
      (float-to-sql-string (coerce num 'double-float)))
     (number
 
 (defun sql-escape (identifier)
   "Change hyphens to underscores, ensure string"
-  (let* ((unescaped (etypecase identifier
-                      (symbol (symbol-name identifier))
-                      (string identifier)))
-         (escaped (make-string (length unescaped))))
-    (dotimes (i (length unescaped))
-      (setf (char escaped i)
-            (cond ((equal (char unescaped i) #\-)
-                   #\_)
-                  ;; ...
-                  (t
-                   (char unescaped i)))))
-    escaped))
+  (let ((unescaped (etypecase identifier
+                    (symbol (symbol-name identifier))
+                    (string identifier))))
+    (substitute #\_ #\- unescaped)))
 
 (defmacro without-interrupts (&body body)
-  #+lispworks `(mp:without-preemption ,@body)
   #+allegro `(mp:without-scheduling ,@body)
+  #+clisp `(progn ,@body)
   #+cmu `(system:without-interrupts ,@body)
-  #+sbcl `(sb-sys::without-interrupts ,@body)
-  #+openmcl `(ccl:without-interrupts ,@body))
+  #+lispworks `(mp:without-preemption ,@body)
+  #+openmcl `(ccl:without-interrupts ,@body)
+  #+sbcl `(sb-sys::without-interrupts ,@body))
 
 (defun make-process-lock (name) 
   #+allegro (mp:make-process-lock :name name)