@@ -67,20 +67,26 @@ extension [QueryBinding] {
6767extension QueryBinding {
6868 fileprivate func result( db: OpaquePointer ? ) {
6969 switch self {
70- case . blob( let value) :
71- sqlite3_result_blob ( db, Array ( value) , Int32 ( value. count) , SQLITE_TRANSIENT)
72- case . double( let value) :
73- sqlite3_result_double ( db, value)
74- case . date( let value) :
75- sqlite3_result_text ( db, value. iso8601String, - 1 , SQLITE_TRANSIENT)
76- case . int( let value) :
77- sqlite3_result_int64 ( db, value)
70+ case . blob( let blob) :
71+ sqlite3_result_blob ( db, Array ( blob) , Int32 ( blob. count) , SQLITE_TRANSIENT)
72+ case . bool( let bool) :
73+ sqlite3_result_int64 ( db, bool ? 1 : 0 )
74+ case . double( let double) :
75+ sqlite3_result_double ( db, double)
76+ case . date( let date) :
77+ sqlite3_result_text ( db, date. iso8601String, - 1 , SQLITE_TRANSIENT)
78+ case . int( let int) :
79+ sqlite3_result_int64 ( db, int)
7880 case . null:
7981 sqlite3_result_null ( db)
80- case . text( let value) :
81- sqlite3_result_text ( db, value, - 1 , SQLITE_TRANSIENT)
82- case . uuid( let value) :
83- sqlite3_result_text ( db, value. uuidString. lowercased ( ) , - 1 , SQLITE_TRANSIENT)
82+ case . text( let text) :
83+ sqlite3_result_text ( db, text, - 1 , SQLITE_TRANSIENT)
84+ case . uint( let uint) where uint <= UInt64 ( Int64 . max) :
85+ sqlite3_result_int64 ( db, Int64 ( uint) )
86+ case . uint( let uint) :
87+ sqlite3_result_error ( db, " Unsigned integer \( uint) overflows Int64.max " , - 1 )
88+ case . uuid( let uuid) :
89+ sqlite3_result_text ( db, uuid. uuidString. lowercased ( ) , - 1 , SQLITE_TRANSIENT)
8490 case . invalid( let error) :
8591 sqlite3_result_error ( db, error. underlyingError. localizedDescription, - 1 )
8692 }
0 commit comments