Overview
Comment: | Added function for using ATTACH for sync between db's. Not yet in use. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | v1.80 |
Files: | files | file ages | folders |
SHA1: |
dca3a45c980af8acc65daa556f3aa96d |
User & Date: | mrwellan on 2023-02-27 21:25:46 |
Other Links: | branch diff | manifest | tags |
Context
2023-02-28
| ||
20:27 | ATTACH Sync not working. check-in: 692ebd2f40 user: mrwellan tags: v1.80 | |
2023-02-27
| ||
21:25 | Added function for using ATTACH for sync between db's. Not yet in use. check-in: dca3a45c98 user: mrwellan tags: v1.80 | |
10:54 | Added suicide mode to db:with-db for development. It has been very hard to isolate threaded crashes under the tcp-server. check-in: 3b54f22608 user: mrwellan tags: v1.80 | |
Changes
Modified dbmod.scm from [2dfee57e39] to [c0d005cd6b].
︙ | |||
304 305 306 307 308 309 310 311 312 313 314 315 316 317 | 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 | + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + | (for-each (lambda (dat) (let ((tblname (car dat)) (count (cdr dat))) (set! tot-count (+ tot-count count)))) (sort (hash-table->alist numrecs)(lambda (a b)(> (cdr a)(cdr b)))))) tot-count)) ;; direction = fromdest, todest ;; mode = 'full, 'incr ;; (define (dbmod:attach-sync tables dbh destdbfile direction #!key (mode 'full)) (let* ((dest-exists (file-exists? destdbfile))) (assert dest-exists "FATAL: sync called with non-existant file, "destdbfile) ;; attach the destdbfile ;; for each table ;; insert into dest.<table> select * from src.<table> where last_update>last_update ;; done (sqlite3:execute dbh "ATTACH ? AS auxdb;" destdbfile) (for-each (lambda (table) (let* ((dir (eq? direction 'todest)) (fromdb (if dir "" "auxdb.")) (todb (if dir "auxdb." "")) (stmt1 (conc "INSERT OR IGNORE INTO "todb table " SELECT * FROM "fromdb table";")) (stmt2 (conc "INSERT OR REPLACE INTO "todb table " SELECT * FROM "fromdb table" WHERE " fromdb table".last_update > " todb table".last_update;")) (stmt3 (conc "INSERT OR REPLACE INTO "todb"."table " SELECT * FROM "fromdb table";")) (stmt4 (conc "DELETE FROM "todb table" WHERE "fromdb "tests.last_update > "todb table".last_update;"))) ;; (print "stmt1: "stmt1) ;; (print "stmt2: "stmt2) ;; (print "stmt3: "stmt4) ;; (print "stmt1: "stmt1) (sqlite3:execute dbh stmt4) (sqlite3:execute dbh stmt1) ;; (sqlite3:execute dbh stmt1) ;; (sqlite3:execute dbh stmt2) (sqlite3:execute dbh "DETACH auxdb;"))) tables))) ;;====================================================================== ;; Moved from dbfile ;;====================================================================== ) |
Modified tcp-transportmod.scm from [1b8b1d78a6] to [e26313be2b].
︙ | |||
533 534 535 536 537 538 539 | 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 | + + - - + + - + | ;; try running on that host ;; incidental: rotate logs in logs/ dir. ;; (define (tt:server-process-run areapath testsuite mtexe run-id #!key (profile-mode "")) ;; areapath is *toppath* for a given testsuite area (assert areapath "FATAL: tt:server-process-run called without areapath defined.") (assert testsuite "FATAL: tt:server-process-run called without testsuite defined.") (assert mtexe "FATAL: tt:server-process-run called without mtexe defined.") ;; mtest -server - -m testsuite:ext-tests -db 6.db (let* ((dbfname (dbmod:run-id->dbfname run-id)) |
︙ |