Megatest

Diff
Login

Differences From Artifact [f2aeba1a5c]:

To Artifact [5d37256fc5]:


32
33
34
35
36
37
38
39

40
41
42
43
44
45
46
47
48
32
33
34
35
36
37
38

39


40
41
42
43
44
45
46







-
+
-
-







	 (dbexists  (let ((fe (file-exists? dbpath)))
		      (if fe 
			  fe
			  (begin
			    (create-directory (conc *toppath* "/db") #t)
			    #f))))
	 (sdb        (sqlite3:open-database dbpath))
	 (handler   (make-busy-timeout (if (args:get-arg "-override-timeout")
	 (handler   (make-busy-timeout 136000)))
					   (string->number (args:get-arg "-override-timeout"))
					   136000))))
    (sqlite3:set-busy-handler! sdb handler)
    (if (not dbexists)
	(sdb:initialize sdb))
    (sqlite3:execute sdb "PRAGMA synchronous = 1;")
    sdb))

(define (sdb:initialize sdb)
78
79
80
81
82
83
84
85

86
87
88
89

90
91
92




93
94
95
96
97
98
99
76
77
78
79
80
81
82

83
84
85
86

87
88


89
90
91
92
93
94
95
96
97
98
99







-
+



-
+

-
-
+
+
+
+







	 sdb
	 "SELECT str FROM strs WHERE id=?;" id))
    str))

;; Numbers get passed though in both directions
;;
(define (make-sdb:qry #!key (fname #f))
  (let ((sdb    (sdb:open fname: fname))
  (let ((sdb    #f) ;; (sdb:open fname: fname))
	(scache (make-hash-table))
	(icache (make-hash-table)))
    (lambda (cmd var)
      ;; (if (not sdb)(set! sdb (sdb:open)))
      (if (not sdb)(set! sdb (sdb:open fname: fname)))
      (case cmd
	;; ((init)      (if (not sdb)(set! sdb (sdb:open))))
	((finalize!) (if sdb (sqlite3:finalize! sdb)))
	((finalize) (if sdb
			(begin
			  (sqlite3:finalize! sdb)
			  (set! sdb #f))))
	((getid)     (let ((id (if (or (number? var)
				       (string->number var))
				   var
				   (sdb:string->id sdb scache var))))
		       (if id
			   id
			   (begin