X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=sql-classes.lisp;h=a7b080414cfebc599c8e3e77bc637d888646e506;hb=188873f068b0c53febe4ee0ededbc755fce4869d;hp=6b606dbfd058d8f1fb35e9804551e70fe8dd7fa0;hpb=cebf651f3b7cfaea45efcaa9a754643d96f33392;p=umlisp.git diff --git a/sql-classes.lisp b/sql-classes.lisp index 6b606db..a7b0804 100644 --- a/sql-classes.lisp +++ b/sql-classes.lisp @@ -2,10 +2,10 @@ ;;;; ************************************************************************* ;;;; FILE IDENTIFICATION ;;;; -;;;; Name: sql-classes.lisp -;;;; Purpose: Routines for reading UMLS objects from SQL database -;;;; Author: Kevin M. Rosenberg -;;;; Date Started: Apr 2000 +;;;; Name: sql-classes.lisp +;;;; Purpose: Routines for reading UMLS objects from SQL database +;;;; Author: Kevin M. Rosenberg +;;;; Created: Apr 2000 ;;;; ;;;; $Id$ ;;;; @@ -41,15 +41,16 @@ ,%%fields ,@(when %%where (list %%where)) ,@(when %%where - `((typecase ,where-value - (fixnum - (prefixed-fixnum-string ,where-value #\= 10)) - (number - (concatenate 'string "=" (write-to-string ,where-value))) - (null - " is null") - (t - (format nil ,(if like "'%~A%'" "='~A'") ,where-value))))) + `((typecase ,where-value + #+ignore + (fixnum + (concatenate 'string "='" (prefixed-fixnum-string ,where-value #\0 10) "'")) + (number + (concatenate 'string "='" (write-to-string ,where-value) "'")) + (null + " is null") + (t + (format nil ,(if like "'%~A%'" "='~A'") ,where-value))))) (if ,srl (concatenate 'string ,%%lrl (write-to-string ,srl)) "") ,@(when %%order (list %%order)) ,@(when single (list " limit 1"))))) @@ -64,7 +65,7 @@ (if where-name (format nil (typecase where-value - (number "=~D") + (number "='~D'") (null " is null") (t (if like " like '%~A%""='~A'"))) @@ -332,7 +333,7 @@ is OBJNAME from TABLE where WHERE-NAME field = WHERE-VALUE with FIELDS" (collect-umlisp-query (mrcoc (cui2 soc cot cof coa kpfstr2) srl cui1 cui :lrl klrl :order (cof asc)) (setq cui2 (ensure-integer cui2)) - (when (zerop cui2) (setq cui2 nil)) + (when (eql 0 cui2) (setq cui2 nil)) (make-instance 'ucoc :cui1 cui :cui2 (ensure-integer cui2) :soc soc :cot cot :cof (ensure-integer cof) :coa coa :pfstr2 kpfstr2))) @@ -479,13 +480,14 @@ is OBJNAME from TABLE where WHERE-NAME field = WHERE-VALUE with FIELDS" (ensure-sui-integer sui) (let ((ls "select CODE,ATN,SAB,ATV from MRSAT where ")) (cond - (sui (string-append ls "KCUISUI=" - (integer-string (make-cuisui cui sui) 14))) - (lui (string-append ls "KCUILUI=" + (sui (string-append ls "KCUISUI='" + (integer-string (make-cuisui cui sui) 14) + "'")) + (lui (string-append ls "KCUILUI='" (integer-string (make-cuilui cui lui) 14) - " and sui=0")) - (t (string-append ls "cui=" (prefixed-fixnum-string cui nil 7) - " and lui=0 and sui=0"))) + "' and sui='0'")) + (t (string-append ls "cui='" (prefixed-fixnum-string cui nil 7) + "' and lui='0' and sui='0'"))) (when srl (string-append ls " and KSRL<=" (prefixed-fixnum-string srl nil 3))) (loop for tuple in (mutex-sql-query ls) collect @@ -790,7 +792,7 @@ is OBJNAME from TABLE where WHERE-NAME field = WHERE-VALUE with FIELDS" (defun make-ustats () (with-sql-connection (conn) - (sql-execute "drop table if exists USTATS" conn) + (ignore-errors (sql-execute "drop table USTATS" conn)) (sql-execute "create table USTATS (NAME varchar(160), COUNT bigint, SRL integer)" conn) (dotimes (srl 4)