X-Git-Url: http://git.kpe.io/?p=umlisp.git;a=blobdiff_plain;f=parse-common.lisp;h=f7fab1e8eb6e9dcc02bca4cfc7ae0cfc23fe81ad;hp=b1395665b68eb612ef4de7fcfccaa16436ce2981;hb=HEAD;hpb=9d3b7b50a36bc1d056d72a53ab5a541e16a3b103 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)))