Overview
Comment: | initial hacks on db for per-run db and server.
This branch is now defunct. Per-run is too complicated for right now. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | per-run-server |
Files: | files | file ages | folders |
SHA1: |
901d6d0d67eb84f1cda03281dfc04a25 |
User & Date: | matt on 2013-11-23 23:26:49 |
Original Comment: | initial hacks on db for per-run db and server |
Other Links: | branch diff | manifest | tags |
Context
2013-11-23
| ||
23:26 |
initial hacks on db for per-run db and server.
This branch is now defunct. Per-run is too complicated for right now. Closed-Leaf check-in: 901d6d0d67 user: matt tags: per-run-server | |
22:52 | Merged from v1.55 check-in: 0e5db02276 user: matt tags: trunk | |
Changes
Modified db.scm from [dd4d66d695] to [0b5a771eb3].
︙ | ︙ | |||
62 63 64 65 66 67 68 | (debug:print 0 "ERROR: synchronous must be 0,1,2,OFF,NORMAL or FULL, you provided: " syncval) #f)))) (if val (begin (debug:print-info 9 "db:set-sync, setting pragma synchronous to " val) (sqlite3:execute db (conc "PRAGMA synchronous = '" val "';")))))) | | | 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | (debug:print 0 "ERROR: synchronous must be 0,1,2,OFF,NORMAL or FULL, you provided: " syncval) #f)))) (if val (begin (debug:print-info 9 "db:set-sync, setting pragma synchronous to " val) (sqlite3:execute db (conc "PRAGMA synchronous = '" val "';")))))) (define (open-db-classic) ;; (conc *toppath* "/megatest.db") (car *configinfo*))) (if (not *toppath*) (if (not (setup-for-run)) (begin (debug:print 0 "ERROR: Attempted to open db when not in megatest area. Exiting.") (exit)))) (let* ((dbpath (conc *toppath* "/megatest.db")) ;; fname) (dbexists (file-exists? dbpath)) |
︙ | ︙ | |||
85 86 87 88 89 90 91 92 93 94 95 96 97 98 | (debug:print-info 11 "open-db, dbpath=" dbpath " argv=" (argv)) (if write-access (sqlite3:set-busy-handler! db handler)) (if (not dbexists) (db:initialize db)) ;; Moving db:set-sync to a call in run.scm - it is a persistent value and only needs to be set once ;; (db:set-sync db) db)) (define (open-in-mem-db) (let* ((path (configf:lookup *configdat* "setup" "tmpdb")) (fname (if path (conc path "/temp-megatest.db") #f)) (exists (and path (file-exists? fname))) (db (if path (begin | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | (debug:print-info 11 "open-db, dbpath=" dbpath " argv=" (argv)) (if write-access (sqlite3:set-busy-handler! db handler)) (if (not dbexists) (db:initialize db)) ;; Moving db:set-sync to a call in run.scm - it is a persistent value and only needs to be set once ;; (db:set-sync db) db)) (define (db:open-db run-id) ;; (conc *toppath* "/megatest.db") (car *configinfo*))) (if (not *toppath*) (if (not (setup-for-run)) (begin (debug:print 0 "ERROR: Attempted to open db when not in megatest area. Exiting.") (exit)))) (if (not (directory-exists? (conc *toppath* "/db"))) (create-directory (conc *toppath* "/db") #t)) ;; Open and close main to ensure it is initialized (let ((db (db:open-main))) (sqlite3:finalize! db)) (let* ((dbpath (conc *toppath* "/db/" run-id ".db")) ;; fname) (dbexists (file-exists? dbpath)) (db (sqlite3:open-database dbpath)) ;; (never-give-up-open-db dbpath)) (write-access (file-write-access? dbpath)) (handler (make-busy-timeout (if (args:get-arg "-override-timeout") (string->number (args:get-arg "-override-timeout")) 136000)))) ;; 136000))) ;; 136000 = 2.2 minutes (if (and dbexists (not write-access)) (set! *db-write-access* write-access)) ;; only unset so other db's also can use this control (debug:print-info 11 "open-db, dbpath=" dbpath " argv=" (argv)) (if write-access (sqlite3:set-busy-handler! db handler)) (if (not dbexists) (db:initialize-tests db)) (sqlite3:execute db (conc "ATTACH DATABASE '" *toppath* "/db/main.db';")) ;; Moving db:set-sync to a call in run.scm - it is a persistent value and only needs to be set once ;; (db:set-sync db) db)) (define (db:open-main) (if (not *toppath*) (if (not (setup-for-run)) (begin (debug:print 0 "ERROR: Attempted to open db when not in megatest area. Exiting.") (exit)))) (if (not (directory-exists? (conc *toppath* "/db"))) (create-directory (conc *toppath* "/db") #t)) (let* ((dbpath (conc *toppath* "/db/main.db")) ;; fname) (dbexists (file-exists? dbpath)) (db (sqlite3:open-database dbpath)) ;; (never-give-up-open-db dbpath)) (write-access (file-write-access? dbpath)) (handler (make-busy-timeout (if (args:get-arg "-override-timeout") (string->number (args:get-arg "-override-timeout")) 136000)))) ;; 136000))) ;; 136000 = 2.2 minutes (if (and dbexists (not write-access)) (set! *db-write-access* write-access)) ;; only unset so other db's also can use this control (debug:print-info 11 "open-db, dbpath=" dbpath " argv=" (argv)) (if write-access (sqlite3:set-busy-handler! db handler)) (if (not dbexists) (db:initialize-main db)) ;; Moving db:set-sync to a call in run.scm - it is a persistent value and only needs to be set once ;; (db:set-sync db) db)) (define (open-in-mem-db) (let* ((path (configf:lookup *configdat* "setup" "tmpdb")) (fname (if path (conc path "/temp-megatest.db") #f)) (exists (and path (file-exists? fname))) (db (if path (begin |
︙ | ︙ |