(defun sql-create-indexes (conn &key (indexes +index-cols+) verbose)
"SQL Databases: create all indexes"
(dolist (idx indexes)
- (when verbose (format t "UMLS Import: Creating index ~S.~%" idx))
+ (when verbose (format t "UMLS Import: Creating index for column ~A on table ~A.~%"
+ (first idx) (second idx)))
(ignore-errors (sql-execute (drop-index-cmd (car idx) (cadr idx)) conn))
(sql-execute (create-index-cmd (car idx) (cadr idx) (caddr idx)) conn)))
(defun translate-all-files (&key (extension "-trans") verbose force)
"Translate all *umls-files* to optimized import format."
- (make-noneng-index-file extension)
+ (when verbose (format t "UMLS Import: Translating file ~A.~%" (fil (find-ufile "MRXW_NONENG.RRF"))))
+ (make-noneng-index-file extension :force force)
(dolist (f (remove "MRXW_NONENG.RRF" *umls-files* :test #'string= :key #'fil))
- (when verbose (format t "UMLS Import: translating file ~S.~%" (fil f)))
+ (when verbose (format t "UMLS Import: Translating file ~A.~%" (fil f)))
(translate-umls-file f extension :force force)))
(defun translate-umls-file (file extension &key force)
(return-from translate-files output-path))
(with-open-file (ostream output-path :direction :output
:if-exists :overwrite
+ :if-does-not-exist :create
#+(and clisp unicode) :external-format
#+(and clisp unicode) charset:utf-8)
(dolist (input-ufile input-ufiles)
(declare (optimize (speed 3) (space 0)))
(ensure-ucols+ufiles)
(let ((max 0))
- (declare (fixnum max))
+ (declare (type (integer 0 1000000) max))
(dolist (ucol *umls-cols*)
- (when (> (cmax ucol) max)
+ (when (> (the (integer 0 1000000) (cmax ucol)) max)
(setq max (cmax ucol))))
max))
(let ((rowsizes '()))
(dolist (file *umls-files*)
(let ((row 0))
+ (declare (type (integer 0 1000000) row))
(dolist (ucol (ucols file))
- (incf row (1+ (cmax ucol))))
+ (let* ((col-max (cmax ucol))
+ (max-with-delim (1+ col-max)))
+ (declare (type (integer 0 1000000) col-max max-with-delim))
+ (incf row max-with-delim)))
(push row rowsizes)))
(car (sort rowsizes #'>))))