Changeset main,5 for main


Ignore:
Timestamp:
10/06/2007 04:38:39 AM (19 years ago)
Author:
David Owen <dsowen@…>
branch-nick:
xbase
revision id:
dsowen@fugue88.ws-20071006043839-k24vfijhbb4ogdor
Message:

Now converts boolean fields.
Escape SQL keyword GROUP.
Escape back-slashes in strings (Postgres-specific).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/xbase.lisp

    r4 r5  
    129129                  ((string= type "D") 'string)
    130130                  ((string= type "M") 'string)
     131                  ((string= type "L") 'string)
    131132                  (t (abort)))))
    132133      `(,(intern name) ,type ,size))))
     
    146147(defun sql-escape-fieldname (name)
    147148  (let ((name (string-downcase name)))
    148     (if (member name '("user") :test 'equal)
     149    (if (member name '("group" "user") :test 'equal)
    149150        (concatenate 'string "\"" name "\"")
    150151        name)))
     
    153154  (if (string= value "")
    154155      "null"
    155       (format nil "'~A'" (cl-ppcre:regex-replace-all "'" value "''"))))
     156      (let ((value
     157             (concatenate 'string "'" (regex-replace-all "'" value "''") "'")))
     158        (when (find #\\ value :test 'char=)
     159          (setf value (concatenate 'string
     160                                   "E"
     161                                   (regex-replace-all "\\\\"
     162                                                      value
     163                                                      "\\\\\\\\"))))
     164        value)))
    156165
    157166(defun sql-column (desc)
     
    174183               (warn "MEMOs aren't implemented yet.")
    175184               "NUMERIC(10)")
     185              ((string= type "L")
     186               "BOOLEAN")
    176187              (t (error "Bad type ~S." type))))))
    177188
Note: See TracChangeset for help on using the changeset viewer.