@@ -512,33 +512,44 @@ (begin (sqlite3:execute db "PRAGMA synchronous = 0;") (sqlite3:set-busy-handler! db (sqlite3:make-busy-timeout 136000)))) db)) -;; processes table calls +;; mtest processes registry calls -(define (dbfile:insert-or-update-process nsdb pinfdat) - (let* ((host (pinf-host pinfdat)) - (pid (pinf-pid pinfdat)) +(define (dbfile:insert-or-update-process nsdb dat) + (let* ((host (pinf-host dat)) + (pid (pinf-pid dat)) (curr-info (dbfile:get-process-info nsdb host pid))) (if curr-info ;; record exists, do update (match curr-info ((host port pid starttime status purpose dbname mtversion) - (dbfile:register-process nsdb host port pid starttime status purpose dbname mtversion)) + (sqlite3:execute + nsdb + "UPDATE processes SET port=?,starttime=?,status=?, + purpose=?,dbname=?,mtversion=? + WHERE host=? AND pid=?;" + (or (pinf-port dat) port) + (or (pinf-start dat) starttime) + (or (pinf-status dat) status) + (or (pinf-purpose dat) purpose) + (or (pinf-dbname dat) dbname) + (or (pinf-mtversion dat) mtversion) + host pid)) (else #f ;; what to do? )) (dbfile:register-process nsdb - (pinf-host pinfdat) - (pinf-port pinfdat) - (pinf-pid pinfdat) - (pinf-start pinfdat) - (pinf-status pinfdat) - (pinf-purpose pinfdat) - (pinf-dbname pinfdat) - (pinf-mtversion pinfdat))))) + (pinf-host dat) + (pinf-port dat) + (pinf-pid dat) + (pinf-start dat) + (pinf-status dat) + (pinf-purpose dat) + (pinf-dbname dat) + (pinf-mtversion dat))))) (define (dbfile:register-process nsdb host port pid starttime status purpose dbname mtversion) (sqlite3:execute nsdb "INSERT INTO processes (host,port,pid,starttime,status,purpose,dbname,mtversion) VALUES (?,?,?,?,?,?,?,?);" host port pid starttime status purpose dbname mtversion))