Index: main/xbase.lisp
===================================================================
--- main/xbase.lisp	(revision main,4)
+++ main/xbase.lisp	(revision main,5)
@@ -129,4 +129,5 @@
                   ((string= type "D") 'string)
                   ((string= type "M") 'string)
+                  ((string= type "L") 'string)
                   (t (abort)))))
       `(,(intern name) ,type ,size))))
@@ -146,5 +147,5 @@
 (defun sql-escape-fieldname (name)
   (let ((name (string-downcase name)))
-    (if (member name '("user") :test 'equal)
+    (if (member name '("group" "user") :test 'equal)
         (concatenate 'string "\"" name "\"")
         name)))
@@ -153,5 +154,13 @@
   (if (string= value "")
       "null"
-      (format nil "'~A'" (cl-ppcre:regex-replace-all "'" value "''"))))
+      (let ((value
+             (concatenate 'string "'" (regex-replace-all "'" value "''") "'")))
+        (when (find #\\ value :test 'char=)
+          (setf value (concatenate 'string
+                                   "E"
+                                   (regex-replace-all "\\\\"
+                                                      value
+                                                      "\\\\\\\\"))))
+        value)))
 
 (defun sql-column (desc)
@@ -174,4 +183,6 @@
                (warn "MEMOs aren't implemented yet.")
                "NUMERIC(10)")
+              ((string= type "L")
+               "BOOLEAN")
               (t (error "Bad type ~S." type))))))
 
