Overview
Comment: | Moved ordering so db:get-subdb is available |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | v1.7001-multi-db-02 |
Files: | files | file ages | folders |
SHA1: |
ed1672cec8ca17064a061378e7f3626c |
User & Date: | matt on 2022-03-20 20:57:36 |
Other Links: | branch diff | manifest | tags |
Context
2022-03-20
| ||
21:51 | fixed params to db:setup check-in: f48837ca86 user: matt tags: v1.7001-multi-db-02 | |
20:57 | Moved ordering so db:get-subdb is available check-in: ed1672cec8 user: matt tags: v1.7001-multi-db-02 | |
20:49 | Restarted, using tests/simplerun/thebeginning.scm. check-in: 0718a80dc4 user: matt tags: v1.7001-multi-db-02 | |
Changes
Modified db.scm from [71268a0c98] to [ceae41d8f3].
︙ | ︙ | |||
135 136 137 138 139 140 141 | ", location: " ((condition-property-accessor 'exn 'location) exn) )) (define (db:setup do-sync) (assert *toppath* "FATAL: db:setup called before launch:setup has been run.") (dbfile:setup do-sync *toppath*)) | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 | ", location: " ((condition-property-accessor 'exn 'location) exn) )) (define (db:setup do-sync) (assert *toppath* "FATAL: db:setup called before launch:setup has been run.") (dbfile:setup do-sync *toppath*)) ;; looks up subdb and returns it, if not found then set up ;; and then return it. ;; (define (db:get-subdb dbstruct run-id) (let* ((res (dbfile:get-subdb dbstruct run-id))) (if res res (let* ((newsubdb (make-dbr:subdb))) (db:open-db newsubdb run-id areapath: (dbr:dbstruct-areapath dbstruct) do-sync: #t) (hash-table-set! (dbr:dbstruct-subdbs dbstruct) (dbfile:run-id->key run-id) newsubdb) newsubdb)))) ;; Get/open a database ;; if run-id => get run specific db ;; if #f => get main db ;; if run-id is a string treat it as a filename ;; if db already open - return inmem ;; if db not open, open inmem, rundb and sync then return inmem ;; inuse gets set automatically for rundb's ;; (define db:get-db db:get-subdb) ;; (define (db:get-db subdb #;dbstruct run-id) ;; RENAME TO db:get-dbh ;; ;; (let* ((subdb (dbfile:get-subdb dbstruct run-id))) ;; (if (stack? (dbr:subdb-dbstack subdb)) ;; (if (stack-empty? (dbr:subdb-dbstack subdb)) ;; (let* ((dbname (db:run-id->dbname run-id)) ;; (newdb (db:open-megatest-db path: (db:dbfile-path) ;; name: dbname))) ;; ;; NOTE: pushing on the stack only happens AFTER the handle has been used ;; ;; (stack-push! (dbr:dbstruct-dbstack dbstruct) newdb) ;; newdb) ;; (stack-pop! (dbr:subdb-dbstack subdb))) ;; (db:open-db subdb run-id))) ;; ) (define-inline (db:generic-error-printout exn . message) (print-call-chain (current-error-port)) (apply debug:print-error 0 *default-log-port* message) (debug:print-error 0 *default-log-port* " params: " params ", error: " ((condition-property-accessor 'exn 'message) exn) ", arguments: " ((condition-property-accessor 'exn 'arguments) exn) ", location: " ((condition-property-accessor 'exn 'location) exn) )) ;; (db:with-db dbstruct run-id sqlite3:exec "select blah fgrom blaz;") ;; r/w is a flag to indicate if the db is modified by this query #t = yes, #f = no ;; (define (db:with-db dbstruct run-id r/w proc . params) (let* ((have-struct (dbr:dbstruct? dbstruct)) (dbdat (if have-struct ;; this stuff just allows us to call with a db handle directly |
︙ | ︙ |