X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=create-sql.lisp;h=33e85b6584d02b467f77467d80f0f5d6b36dacb9;hb=17b2d76a88f0bc4cadc0f100f312587e3b456b10;hp=d145ad9255f8c08c8c60d593800cb6c2ec5cc1ab;hpb=cdaa9cb65482eaca5a8eafbbe7b3bec9fb157512;p=umlisp.git diff --git a/create-sql.lisp b/create-sql.lisp index d145ad9..33e85b6 100644 --- a/create-sql.lisp +++ b/create-sql.lisp @@ -208,9 +208,10 @@ (format nil "DROP INDEX ~a" (concatenate 'string tablename "_" colname "_X"))))) -(defun sql-create-indexes (conn &optional (indexes +index-cols+)) +(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)) (ignore-errors (sql-execute (drop-index-cmd (car idx) (cadr idx)) conn)) (sql-execute (create-index-cmd (car idx) (cadr idx) (caddr idx)) conn))) @@ -229,7 +230,7 @@ (make-usrl conn) (make-ustats)) -(defun create-umls-db-by-insert () +(defun create-umls-db-by-insert (&key verbose) "SQL Databases: initializes entire database via SQL insert commands" (ensure-ucols+ufiles) (ensure-preparse) @@ -239,16 +240,19 @@ (sql-insert-all-values conn) (sql-create-indexes conn) (sql-create-custom-tables conn) - (sql-create-indexes conn +custom-index-cols+) + (sql-create-indexes conn :indexes +custom-index-cols+ :verbose verbose) (sql-create-special-tables conn))) -(defun create-umls-db (&key (extension "-trans") (skip-translation nil)) +(defun create-umls-db (&key (extension "-trans") (skip-translation nil) (verbose nil)) "SQL Databases: initializes entire database via SQL copy commands. This is much faster that using create-umls-db-insert." + (when verbose (format t "UMLS Import: Starting.~%")) (ensure-ucols+ufiles) + (when verbose (format t "UMLS Import: Preparsing files.~%")) (ensure-preparse) (unless skip-translation - (translate-all-files extension)) + (when verbose (format t "UMLS Import: Converting text UMLS files to optimized format.~%")) + (translate-all-files :extension extension :verbose verbose)) (let ((copy-cmd (ecase (umls-sql-type) (:mysql #'mysql-copy-cmd) @@ -258,17 +262,24 @@ This is much faster that using create-umls-db-insert." (sql-drop-tables conn) (sql-create-tables conn) (dolist (file *umls-files*) + (when verbose (format t "UMLS Import: Importing file ~A to SQL.~%" (fil file))) (sql-execute (funcall copy-cmd file extension) conn)) - (sql-create-indexes conn) + (When verbose (format t "UMLS Import: Creating SQL indices.~%")) + (sql-create-indexes conn :verbose verbose) + (When verbose (format t "UMLS Import: Creating custom tables.~%")) (sql-create-custom-tables conn) - (sql-create-indexes conn +custom-index-cols+) + (When verbose (format t "UMLS Import: Creating custom indices.~%")) + (sql-create-indexes conn :indexes +custom-index-cols+ :verbose verbose) + (When verbose (format t "UMLS Import: Creating special tables.~%")) (sql-create-special-tables conn))) + (When verbose (format t "UMLS Import: Completed.~%")) t) -(defun translate-all-files (&optional (extension "-trans")) - "Copy translated files and return postgresql copy commands to import" +(defun translate-all-files (&key (extension "-trans") verbose) + "Translate all *umls-files* to optimized import format." (make-noneng-index-file extension) (dolist (f (remove "MRXW_NONENG.RRF" *umls-files* :test #'string= :key #'fil)) + (when verbose (format t "UMLS Import: translating file ~S.~%" (fil f))) (translate-umls-file f extension))) (defun translate-umls-file (file extension)