@@ -78,9 +78,15 @@ impl KVStore for SqliteStore {
7878 } ,
7979 |row| row. get ( 0 ) ,
8080 )
81- . map_err ( |_| {
82- let msg = format ! ( "Failed to read from key: {}/{}" , namespace, key) ;
83- std:: io:: Error :: new ( std:: io:: ErrorKind :: NotFound , msg)
81+ . map_err ( |e| match e {
82+ rusqlite:: Error :: QueryReturnedNoRows => {
83+ let msg = format ! ( "Failed namespace/key not found: {}/{}" , namespace, key) ;
84+ std:: io:: Error :: new ( std:: io:: ErrorKind :: NotFound , msg)
85+ }
86+ e => {
87+ let msg = format ! ( "Failed to read from key {}/{}: {}" , namespace, key, e) ;
88+ std:: io:: Error :: new ( std:: io:: ErrorKind :: Other , msg)
89+ }
8490 } ) ?;
8591 Ok ( Cursor :: new ( res) )
8692 }
@@ -102,8 +108,8 @@ impl KVStore for SqliteStore {
102108 ":value" : buf,
103109 } ,
104110 )
105- . map_err ( |_ | {
106- let msg = format ! ( "Failed to write to key: {}/{}" , namespace, key) ;
111+ . map_err ( |e | {
112+ let msg = format ! ( "Failed to write to key {}/{}: {} " , namespace, key, e ) ;
107113 std:: io:: Error :: new ( std:: io:: ErrorKind :: Other , msg)
108114 } ) ?;
109115 Ok ( ( ) )
@@ -122,8 +128,8 @@ impl KVStore for SqliteStore {
122128 ":key" : key,
123129 } ,
124130 )
125- . map_err ( |_ | {
126- let msg = format ! ( "Failed to delete key: {}/{}" , namespace, key) ;
131+ . map_err ( |e | {
132+ let msg = format ! ( "Failed to delete key {}/{}: {} " , namespace, key, e ) ;
127133 std:: io:: Error :: new ( std:: io:: ErrorKind :: Other , msg)
128134 } ) ?;
129135
@@ -136,21 +142,24 @@ impl KVStore for SqliteStore {
136142 let locked_conn = self . connection . lock ( ) . unwrap ( ) ;
137143
138144 let sql = format ! ( "SELECT key FROM {} WHERE namespace=:namespace" , KV_TABLE_NAME ) ;
139- let mut stmt = locked_conn. prepare ( & sql) . map_err ( |_| {
140- std:: io:: Error :: new ( std:: io:: ErrorKind :: Other , "Failed to prepare statement" )
145+ let mut stmt = locked_conn. prepare ( & sql) . map_err ( |e| {
146+ let msg = format ! ( "Failed to prepare statement: {}" , e) ;
147+ std:: io:: Error :: new ( std:: io:: ErrorKind :: Other , msg)
141148 } ) ?;
142149
143150 let mut keys = Vec :: new ( ) ;
144151
145152 let rows_iter = stmt
146153 . query_map ( named_params ! { ":namespace" : namespace, } , |row| row. get ( 0 ) )
147- . map_err ( |_| {
148- std:: io:: Error :: new ( std:: io:: ErrorKind :: Other , "Failed to retrieve queried rows" )
154+ . map_err ( |e| {
155+ let msg = format ! ( "Failed to retrieve queried rows: {}" , e) ;
156+ std:: io:: Error :: new ( std:: io:: ErrorKind :: Other , msg)
149157 } ) ?;
150158
151159 for k in rows_iter {
152- keys. push ( k. map_err ( |_| {
153- std:: io:: Error :: new ( std:: io:: ErrorKind :: Other , "Failed to retrieve queried rows" )
160+ keys. push ( k. map_err ( |e| {
161+ let msg = format ! ( "Failed to retrieve queried rows: {}" , e) ;
162+ std:: io:: Error :: new ( std:: io:: ErrorKind :: Other , msg)
154163 } ) ?) ;
155164 }
156165
0 commit comments