Index: db.scm ================================================================== --- db.scm +++ db.scm @@ -265,13 +265,13 @@ inmem))))))) ;; This routine creates the db. It is only called if the db is not already ls opened ;; (define (db:open-main dbstruct) ;; (conc *toppath* "/megatest.db") (car *configinfo*))) - (let ((mdb (dbr:dbstruct-get-main dbstruct))) - (if mdb - mdb + (let ((megatest-db (dbr:dbstruct-get-main dbstruct))) + (if megatest-db + megatest-db (begin (mutex-lock! *rundb-mutex*) (let* ((dbpath (db:dbfile-path 0)) (dbexists (file-exists? dbpath)) (db (db:lock-create-open dbpath db:initialize-main-db)) @@ -365,15 +365,15 @@ (begin (sqlite3:finalize! (db:dbdat-get-db maindb)) (dbr:dbstruct-set-main! dbstruct #f))))) (define (db:close-run-db dbstruct run-id) - (let ((rdb (db:open-rundb dbstruct run-id do-not-open: #t))) - (if (and rdb - (sqlite3:database? rdb)) + (let ((run-db (db:open-rundb dbstruct run-id do-not-open: #t))) + (if (and run-db + (sqlite3:database? run-db)) (begin - (sqlite3:finalize! rdb) + (sqlite3:finalize! run-db) (dbr:dbstruct-set-localdb! dbstruct run-id #f) (dbr:dbstruct-set-inmem! dbstruct #f))))) ;; close all opened run-id dbs (define (db:close-all dbstruct) @@ -705,17 +705,17 @@ ;; run-ids: '(1 2 3 ...) or #f (for all) ;; (define (db:multi-db-sync run-ids . options) (let* ((toppath (launch:setup)) (dbstruct (if toppath (make-dbr:dbstruct path: toppath) #f)) - (mtdb (if toppath (db:open-megatest-db))) + (megatest-db (if toppath (db:open-megatest-db))) (allow-cleanup (if run-ids #f #t)) (run-ids (if run-ids run-ids (if toppath (begin - (db:delay-if-busy mtdb) - (db:get-all-run-ids mtdb))))) + (db:delay-if-busy megatest-db) + (db:get-all-run-ids megatest-db))))) (tdbdat (tasks:open-db)) (servers (tasks:get-all-servers (db:delay-if-busy tdbdat)))) ;; kill servers (if (member 'killservers options) @@ -727,29 +727,29 @@ ;; clear out junk records ;; (if (member 'dejunk options) (begin - (db:delay-if-busy mtdb) - (db:clean-up mtdb))) + (db:delay-if-busy megatest-db) + (db:clean-up megatest-db))) ;; adjust test-ids to fit into proper range ;; (if (member 'adj-testids options) (begin - (db:delay-if-busy mtdb) - (db:prep-megatest.db-for-migration mtdb))) + (db:delay-if-busy megatest-db) + (db:prep-megatest.db-for-migration megatest-db))) ;; sync runs, test_meta etc. ;; (if (member 'old2new options) (begin - (db:sync-tables (db:sync-main-list mtdb) mtdb (db:get-db dbstruct #f)) + (db:sync-tables (db:sync-main-list megatest-db) megatest-db (db:get-db dbstruct #f)) (for-each (lambda (run-id) - (db:delay-if-busy mtdb) - (let ((testrecs (db:get-all-tests-info-by-run-id mtdb run-id)) + (db:delay-if-busy megatest-db) + (let ((testrecs (db:get-all-tests-info-by-run-id megatest-db run-id)) (dbstruct (if toppath (make-dbr:dbstruct path: toppath local: #t) #f))) (debug:print 0 *default-log-port* "INFO: Propagating " (length testrecs) " records for run-id=" run-id " to run specific db") (db:replace-test-records dbstruct run-id testrecs) (sqlite3:finalize! (db:dbdat-get-db (dbr:dbstruct-get-rundb dbstruct))))) run-ids))) @@ -773,11 +773,11 @@ ;; (db:delay-if-busy frundb) ;; (db:delay-if-busy mtdb) ;; (db:clean-up frundb) (if (eq? run-id 0) (let ((maindb (db:dbdat-get-db (db:get-db fromdb #f)))) - (db:sync-tables (db:sync-main-list dbstruct) (db:get-db fromdb #f) mtdb) + (db:sync-tables (db:sync-main-list dbstruct) (db:get-db fromdb #f) megatest-db) (set! dead-runs (db:clean-up-maindb (db:get-db fromdb #f))) ;; ;; Feb 18, 2016: add field last_update to runs table ;; ;; remove all these some time after september 2016 (added in v1.6031 @@ -813,11 +813,11 @@ WHERE id=old.id; END;") ) (begin ;; NB// must sync first to ensure deleted tests get marked as such in megatest.db - (db:sync-tables db:sync-tests-only (db:get-db fromdb run-id) mtdb) + (db:sync-tables db:sync-tests-only (db:get-db fromdb run-id) megatest-db) (db:clean-up-rundb (db:get-db fromdb run-id)) ;; ;; Feb 18, 2016: add field last_update to tests, test_steps and test_data ;; ;; remove this some time after September 2016 (added in version v1.6031 @@ -859,10 +859,12 @@ ;; (db:close-all dbstruct) ;; (sqlite3:finalize! mdb) )) ;; keeping it around for debugging purposes only +;; idb = incoming db +;; (define (open-run-close-no-exception-handling proc idb . params) (debug:print-info 11 *default-log-port* "open-run-close-no-exception-handling START given a db=" (if idb "yes " "no ") ", params=" params) (if (or *db-write-access* (not (member proc *db:all-write-procs*))) (let* ((db (cond @@ -2590,48 +2592,48 @@ testrecs))) (sqlite3:finalize! qry))))) ;; map a test-id into the proper range ;; -(define (db:adj-test-id mtdb min-test-id test-id) +(define (db:adj-test-id megatest-db min-test-id test-id) (if (>= test-id min-test-id) test-id (let loop ((new-id min-test-id)) (let ((test-id-found #f)) (sqlite3:for-each-row (lambda (id) (set! test-id-found id)) - (db:dbdat-get-db mtdb) + (db:dbdat-get-db megatest-db) "SELECT id FROM tests WHERE id=?;" new-id) ;; if test-id-found then need to try again (if test-id-found (loop (+ new-id 1)) (begin (debug:print-info 0 *default-log-port* "New test id " new-id " selected for test with id " test-id) - (sqlite3:execute mtdb "UPDATE tests SET id=? WHERE id=?;" new-id test-id))))))) + (sqlite3:execute megatest-db "UPDATE tests SET id=? WHERE id=?;" new-id test-id))))))) ;; move test ids into the 30k * run_id range ;; -(define (db:prep-megatest.db-adj-test-ids mtdb run-id testrecs) +(define (db:prep-megatest.db-adj-test-ids megatest-db run-id testrecs) (debug:print-info 0 *default-log-port* "Adjusting test ids in megatest.db for run " run-id) (let ((min-test-id (* run-id 30000))) (for-each (lambda (testrec) (let* ((test-id (vector-ref testrec (db:field->number "id" db:test-record-fields)))) - (db:adj-test-id (db:dbdat-get-db mtdb) min-test-id test-id))) + (db:adj-test-id (db:dbdat-get-db megatest-db) min-test-id test-id))) testrecs))) ;; 1. move test ids into the 30k * run_id range ;; 2. move step ids into the 30k * run_id range ;; -(define (db:prep-megatest.db-for-migration mtdb) - (let* ((run-ids (db:get-all-run-ids mtdb))) +(define (db:prep-megatest.db-for-migration megatest-db) + (let* ((run-ids (db:get-all-run-ids megatest-db))) (for-each (lambda (run-id) - (let ((testrecs (db:get-all-tests-info-by-run-id mtdb run-id))) - (db:prep-megatest.db-adj-test-ids (db:dbdat-get-db mtdb) run-id testrecs))) + (let ((testrecs (db:get-all-tests-info-by-run-id megatest-db run-id))) + (db:prep-megatest.db-adj-test-ids (db:dbdat-get-db megatest-db) run-id testrecs))) run-ids))) ;; Get test data using test_id (define (db:get-test-info-by-id dbstruct run-id test-id) (db:with-db Index: megatest-version.scm ================================================================== --- megatest-version.scm +++ megatest-version.scm @@ -1,7 +1,7 @@ ;; Always use two or four digit decimal ;; 1.01, 1.02...1.10,1.11,1.1101 ... 1.99,2.00.. (declare (unit megatest-version)) -(define megatest-version 1.6104) +(define megatest-version 1.6201)