X-Git-Url: http://git.kpe.io/?p=umlisp.git;a=blobdiff_plain;f=parse-common.lisp;fp=parse-common.lisp;h=f7fab1e8eb6e9dcc02bca4cfc7ae0cfc23fe81ad;hp=b1395665b68eb612ef4de7fcfccaa16436ce2981;hb=b7db3eab456003e502a3a82b4bfdad154a82054d;hpb=6b0acc8fd6324c9a8000d224808a50a781ea8c74 diff --git a/parse-common.lisp b/parse-common.lisp index b139566..f7fab1e 100644 --- a/parse-common.lisp +++ b/parse-common.lisp @@ -378,3 +378,17 @@ append a unique number (starting at 2) onto a column name that is repeated in th (defun escape-column-name (name) (substitute #\_ #\/ name)) + +;; SQLNAME is required for collision of SQL reserved words (MYSQL 8: RANK) +;; and column names in UMLS (RANK in MRRANK) +(defvar *sql-reserved-names* '("RANK")) +(defmethod sqlname ((c ucol)) + (sqlname (col c))) +(defmethod sqlname ((name string)) + (if (find name *sql-reserved-names* :test #'string-equal) + (concatenate 'string "_" name) + name)) +(defmethod sqlname ((l list)) + (mapcar #'sqlname l)) +(defmethod sqlname ((s symbol)) + (sqlname (symbol-name s)))