421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
|
(db (dbr:dbdat-db dbdat))
(inmem (dbr:dbdat-inmem dbdat))
(start-t (current-seconds))
(last-update (dbr:dbdat-last-write dbdat))
(last-sync (dbr:dbdat-last-sync dbdat)))
(debug:print-info 0 *default-log-port* "Syncing for dbfile: "dbfile", last-update: "last-update", last-sync: "last-sync)
(mutex-lock! *db-multi-sync-mutex*)
(let* ((update_info (cons (if force-sync 0 last-update) "last_update"))
(need-sync (or force-sync (>= last-update last-sync))))
(if need-sync
(begin
(db:sync-tables (db:sync-all-tables-list) update_info inmem db)
(dbr:dbdat-last-sync-set! dbdat start-t))
(debug:print 0 *default-log-port* "Skipping sync as nothing touched.")))
(mutex-unlock! *db-multi-sync-mutex*)))
|
|
|
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
|
(db (dbr:dbdat-db dbdat))
(inmem (dbr:dbdat-inmem dbdat))
(start-t (current-seconds))
(last-update (dbr:dbdat-last-write dbdat))
(last-sync (dbr:dbdat-last-sync dbdat)))
(debug:print-info 0 *default-log-port* "Syncing for dbfile: "dbfile", last-update: "last-update", last-sync: "last-sync)
(mutex-lock! *db-multi-sync-mutex*)
(let* ((update_info (cons "last_update" (if force-sync 0 last-update))) ;; "last_update"))
(need-sync (or force-sync (>= last-update last-sync))))
(if need-sync
(begin
(db:sync-tables (db:sync-all-tables-list) update_info inmem db)
(dbr:dbdat-last-sync-set! dbdat start-t))
(debug:print 0 *default-log-port* "Skipping sync as nothing touched.")))
(mutex-unlock! *db-multi-sync-mutex*)))
|
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
|
(define (db:sync-one-table fromdb todb tabledat last-update numrecs)
(let* ((tablename (car tabledat))
(fields (cdr tabledat))
(has-last-update (member "last_update" fields))
(use-last-update (cond
((and has-last-update
(member "last_update" fields))
#t) ;; if given a number, just use it for all fields
((number? last-update) #f) ;; if not matched first entry then ignore last-update for this table
((and (pair? last-update)
(member (car last-update) ;; last-update field name
(map car fields)))
#t)
(last-update
(debug:print 0 *default-log-port* "ERROR: parameter last-update for db:sync-tables must be a pair or a number, received: " last-update);; found in fields
#f)
(else
#f)))
(last-update-value (if use-last-update ;; no need to check for has-last-update - it is already accounted for
(if (number? last-update)
|
|
<
>
>
>
>
|
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
|
(define (db:sync-one-table fromdb todb tabledat last-update numrecs)
(let* ((tablename (car tabledat))
(fields (cdr tabledat))
(has-last-update (member "last_update" fields))
(use-last-update (cond
((and has-last-update
(number? last-update))
#t) ;; if given a number, just use it for all fields
((and (pair? last-update)
(member (car last-update) ;; last-update field name
(map car fields)))
#t)
((pair? last-update)
(debug:print 0 *default-log-port* "ERROR: parameter last-update malformed. last-update="last-update)
#f)
((number? last-update) #f) ;; if not matched first entry then ignore last-update for this table
(last-update
(debug:print 0 *default-log-port* "ERROR: parameter last-update for db:sync-tables must be a pair or a number, received: " last-update);; found in fields
#f)
(else
#f)))
(last-update-value (if use-last-update ;; no need to check for has-last-update - it is already accounted for
(if (number? last-update)
|