@@ -98,9 +98,13 @@ impl KVStore for SqliteStore {
9898 let sql =
9999 format ! ( "SELECT value FROM {} WHERE namespace=:namespace AND key=:key;" , self . kv_table_name) ;
100100
101- let res = locked_conn
101+ let mut stmt = locked_conn. prepare_cached ( & sql) . map_err ( |e| {
102+ let msg = format ! ( "Failed to prepare statement: {}" , e) ;
103+ std:: io:: Error :: new ( std:: io:: ErrorKind :: Other , msg)
104+ } ) ?;
105+
106+ let res = stmt
102107 . query_row (
103- & sql,
104108 named_params ! {
105109 ":namespace" : namespace,
106110 ":key" : key,
@@ -146,14 +150,17 @@ impl KVStore for SqliteStore {
146150 self . kv_table_name
147151 ) ;
148152
149- locked_conn
150- . execute (
151- & sql,
152- named_params ! {
153- ":namespace" : namespace,
154- ":key" : key,
155- ":value" : buf,
156- } ,
153+ let mut stmt = locked_conn. prepare_cached ( & sql) . map_err ( |e| {
154+ let msg = format ! ( "Failed to prepare statement: {}" , e) ;
155+ std:: io:: Error :: new ( std:: io:: ErrorKind :: Other , msg)
156+ } ) ?;
157+
158+ stmt. execute (
159+ named_params ! {
160+ ":namespace" : namespace,
161+ ":key" : key,
162+ ":value" : buf,
163+ } ,
157164 )
158165 . map ( |_| ( ) )
159166 . map_err ( |e| {
@@ -183,13 +190,17 @@ impl KVStore for SqliteStore {
183190 let locked_conn = self . connection . lock ( ) . unwrap ( ) ;
184191
185192 let sql = format ! ( "DELETE FROM {} WHERE namespace=:namespace AND key=:key;" , self . kv_table_name) ;
186- locked_conn
187- . execute (
188- & sql,
189- named_params ! {
190- ":namespace" : namespace,
191- ":key" : key,
192- } ,
193+
194+ let mut stmt = locked_conn. prepare_cached ( & sql) . map_err ( |e| {
195+ let msg = format ! ( "Failed to prepare statement: {}" , e) ;
196+ std:: io:: Error :: new ( std:: io:: ErrorKind :: Other , msg)
197+ } ) ?;
198+
199+ stmt. execute (
200+ named_params ! {
201+ ":namespace" : namespace,
202+ ":key" : key,
203+ } ,
193204 )
194205 . map_err ( |e| {
195206 let msg = format ! ( "Failed to delete key {}/{}: {}" , namespace, key, e) ;
@@ -202,7 +213,7 @@ impl KVStore for SqliteStore {
202213 let locked_conn = self . connection . lock ( ) . unwrap ( ) ;
203214
204215 let sql = format ! ( "SELECT key FROM {} WHERE namespace=:namespace" , self . kv_table_name) ;
205- let mut stmt = locked_conn. prepare ( & sql) . map_err ( |e| {
216+ let mut stmt = locked_conn. prepare_cached ( & sql) . map_err ( |e| {
206217 let msg = format ! ( "Failed to prepare statement: {}" , e) ;
207218 std:: io:: Error :: new ( std:: io:: ErrorKind :: Other , msg)
208219 } ) ?;
0 commit comments