Overview
Comment: | fixed sync-tables bug |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | v1.63-gasket |
Files: | files | file ages | folders |
SHA1: |
1d0bf66aa6b8026c95c6ac0920e45e6c |
User & Date: | srehman on 2016-12-20 15:01:38 |
Other Links: | branch diff | manifest | tags |
Context
2016-12-20
| ||
15:50 | changed more sqlite3 calls to dbi check-in: 750e8df937 user: srehman tags: v1.63-gasket | |
15:01 | fixed sync-tables bug check-in: 1d0bf66aa6 user: srehman tags: v1.63-gasket | |
13:48 | dashboard launches, fixing issues with megatest calls check-in: 66f80f8403 user: srehman tags: v1.63-gasket | |
Changes
Modified db.scm from [2b5e880cc2] to [33e8e7f1ab].
︙ | ︙ | |||
556 557 558 559 560 561 562 | (cons todb slave-dbs)) 0) ;; this is the work to be done (cond ((not fromdb) (debug:print 3 *default-log-port* "WARNING: db:sync-tables called with fromdb missing") -1) ((not todb) (debug:print 3 *default-log-port* "WARNING: db:sync-tables called with todb missing") -2) | | | | 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 | (cons todb slave-dbs)) 0) ;; this is the work to be done (cond ((not fromdb) (debug:print 3 *default-log-port* "WARNING: db:sync-tables called with fromdb missing") -1) ((not todb) (debug:print 3 *default-log-port* "WARNING: db:sync-tables called with todb missing") -2) ((not (dbi:database? (db:dbdat-get-db fromdb))) (debug:print-error 0 *default-log-port* "db:sync-tables called with fromdb not a database " fromdb) -3) ((not (dbi:database? (db:dbdat-get-db todb))) (debug:print-error 0 *default-log-port* "db:sync-tables called with todb not a database " todb) -4) (else (let ((stmts (make-hash-table)) ;; table-field => stmt (all-stmts '()) ;; ( ( stmt1 value1 ) ( stml2 value2 )) (numrecs (make-hash-table)) (start-time (current-milliseconds)) (tot-count 0)) |
︙ | ︙ | |||
594 595 596 597 598 599 600 | " VALUES ( " (string-intersperse (make-list num-fields "?") ",") " );")) (fromdat '()) (fromdats '()) (totrecords 0) (batch-len (string->number (or (configf:lookup *configdat* "sync" "batchsize") "10"))) (todat (make-hash-table)) (count 0)) | < | 594 595 596 597 598 599 600 601 602 603 604 605 606 607 | " VALUES ( " (string-intersperse (make-list num-fields "?") ",") " );")) (fromdat '()) (fromdats '()) (totrecords 0) (batch-len (string->number (or (configf:lookup *configdat* "sync" "batchsize") "10"))) (todat (make-hash-table)) (count 0)) ;; set up the field->num table (for-each (lambda (field) (hash-table-set! field->num field count) (set! count (+ count 1))) fields) |
︙ | ︙ | |||
624 625 626 627 628 629 630 | (if (common:low-noise-print 120 "sync-records") (debug:print-info 4 *default-log-port* "found " totrecords " records to sync")) ;; read the target table (dbi:for-each-row (lambda (output) | | | 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 | (if (common:low-noise-print 120 "sync-records") (debug:print-info 4 *default-log-port* "found " totrecords " records to sync")) ;; read the target table (dbi:for-each-row (lambda (output) (hash-table-set! todat (vector-ref output 0) output)) (db:dbdat-get-db todb) full-sel) ;; first pass implementation, just insert all changed rows (for-each (lambda (targdb) (let* ((db (db:dbdat-get-db targdb)) |
︙ | ︙ | |||
653 654 655 656 657 658 659 | (not (equal? (vector-ref fromrow i)(vector-ref curr i)))) (set! same #f)) (if (and same (< i (- num-fields 1))) (loop (+ i 1)))) (if (not same) (begin | | | 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 | (not (equal? (vector-ref fromrow i)(vector-ref curr i)))) (set! same #f)) (if (and same (< i (- num-fields 1))) (loop (+ i 1)))) (if (not same) (begin (dbi:exec stmth (vector->list fromrow)) (hash-table-set! numrecs tablename (+ 1 (hash-table-ref/default numrecs tablename 0))))))) fromdat-lst)) )) fromdats) (dbi:close stmth))) (append (list todb) slave-dbs)))) tbls) |
︙ | ︙ |