work around missing _v2 functions on old libsqlite3 versions
Missing sqlite3_next_stmt is still a problem, but harder to work around.
This commit is contained in:
parent
07b8507ce9
commit
0ac903f527
|
@ -25,6 +25,13 @@
|
|||
(define-sqlite sqlite3_libversion_number
|
||||
(_fun -> _int))
|
||||
|
||||
(define-sqlite sqlite3_open
|
||||
(_fun (filename ignored-flags) ::
|
||||
(filename : _bytes)
|
||||
(db : (_ptr o _sqlite3_database))
|
||||
-> (result : _int)
|
||||
-> (values db result)))
|
||||
|
||||
(define-sqlite sqlite3_open_v2
|
||||
(_fun (filename flags) ::
|
||||
(filename : _bytes)
|
||||
|
@ -32,7 +39,8 @@
|
|||
(flags : _int)
|
||||
(vfs : _pointer = #f)
|
||||
-> (result : _int)
|
||||
-> (values db result)))
|
||||
-> (values db result))
|
||||
#:fail (lambda () sqlite3_open))
|
||||
|
||||
(define-sqlite sqlite3_close
|
||||
(_fun _sqlite3_database
|
||||
|
@ -49,6 +57,16 @@
|
|||
(ptr-set! rawcopy _byte n 0)
|
||||
copy))
|
||||
|
||||
(define-sqlite sqlite3_prepare
|
||||
(_fun (db sql) ::
|
||||
(db : _sqlite3_database)
|
||||
(sql-buffer : _bytes = (copy-buffer sql))
|
||||
((bytes-length sql-buffer) : _int)
|
||||
(statement : (_ptr o _sqlite3_statement/null))
|
||||
(tail : (_ptr o _bytes)) ;; points into sql-buffer (atomic-interior)
|
||||
-> (result : _int)
|
||||
-> (values result statement (and tail (positive? (bytes-length tail))))))
|
||||
|
||||
(define-sqlite sqlite3_prepare_v2
|
||||
(_fun (db sql) ::
|
||||
(db : _sqlite3_database)
|
||||
|
@ -58,7 +76,8 @@
|
|||
(statement : (_ptr o _sqlite3_statement/null))
|
||||
(tail : (_ptr o _bytes)) ;; points into sql-buffer (atomic-interior)
|
||||
-> (result : _int)
|
||||
-> (values result statement (and tail (positive? (bytes-length tail))))))
|
||||
-> (values result statement (and tail (positive? (bytes-length tail)))))
|
||||
#:fail (lambda () sqlite3_prepare))
|
||||
|
||||
(define-sqlite sqlite3_finalize
|
||||
(_fun _sqlite3_statement
|
||||
|
|
Loading…
Reference in New Issue
Block a user