Megatest

Diff
Login

Differences From Artifact [2a89ecc16d]:

To Artifact [5f7c49b44c]:


250
251
252
253
254
255
256
257

258
259
260
261
262
263
264
250
251
252
253
254
255
256

257
258
259
260
261
262
263
264







-
+







  (db:with-lock-db dbfile
		(lambda (dbh dbfile)
		  (db:get-iam-server-lock dbh dbfile))))

(define (db:with-lock-db dbfile proc)
  (let* ((dbh (db:open-run-db dbfile db:initialize-db))
	 (res (proc dbh dbfile)))
    (sqlite3:finalize! dbh)
    ;; (sqlite3:finalize! dbh)
    res))

;; called before db is open?
;;
(define (db:get-iam-server-lock dbh dbfname)
  (sqlite3:with-transaction
   dbh
654
655
656
657
658
659
660
661


662
663



664
665
666
667
668
669
670
654
655
656
657
658
659
660

661
662
663
664
665
666
667
668
669
670
671
672
673
674







-
+
+


+
+
+







			    ((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)
			    ((and (pair? last-update)
				  (not (number? (cdr last-update))))
			     (debug:print 0 *default-log-port* "ERROR: parameter last-update malformed. last-update="last-update)
			     #f)
			    ((and (pair? last-update)
				  (string? (car last-update))) ;; valid format, field not recognised
			     #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