File tree Expand file tree Collapse file tree 1 file changed +13
-1
lines changed Expand file tree Collapse file tree 1 file changed +13
-1
lines changed Original file line number Diff line number Diff line change 10
10
; ;;
11
11
; ;; SQLite schema introspection facilities
12
12
; ;;
13
+ (defun sqlite-pragma-encoding (db)
14
+ (handler-case
15
+ (sqlite :execute-single db " pragma encoding;" )
16
+ (sqlite :sqlite-error (e)
17
+ (if (eq :busy (sqlite :sqlite-error-code e))
18
+ ; ; retry when "database is locked" for being BUSY
19
+ (progn
20
+ (sleep 0.1 )
21
+ (sqlite-pragma-encoding db))
22
+ ; ; fail by re-signaling the error
23
+ (error e)))))
24
+
13
25
(defun sqlite-encoding (db)
14
26
" Return a BABEL suitable encoding for the SQLite db handle."
15
- (let ((encoding-string (sqlite :execute-single db " pragma encoding; " )))
27
+ (let ((encoding-string (sqlite- pragma- encoding db )))
16
28
(cond ((string-equal encoding-string " UTF-8" ) :utf-8 )
17
29
((string-equal encoding-string " UTF-16" ) :utf-16 )
18
30
((string-equal encoding-string " UTF-16le" ) :utf-16le )
You can’t perform that action at this time.
0 commit comments