@@ -98,9 +98,13 @@ impl KVStore for SqliteStore {
98
98
let sql =
99
99
format ! ( "SELECT value FROM {} WHERE namespace=:namespace AND key=:key;" , self . kv_table_name) ;
100
100
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
102
107
. query_row (
103
- & sql,
104
108
named_params ! {
105
109
":namespace" : namespace,
106
110
":key" : key,
@@ -146,14 +150,17 @@ impl KVStore for SqliteStore {
146
150
self . kv_table_name
147
151
) ;
148
152
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
+ } ,
157
164
)
158
165
. map ( |_| ( ) )
159
166
. map_err ( |e| {
@@ -183,13 +190,17 @@ impl KVStore for SqliteStore {
183
190
let locked_conn = self . connection . lock ( ) . unwrap ( ) ;
184
191
185
192
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
+ } ,
193
204
)
194
205
. map_err ( |e| {
195
206
let msg = format ! ( "Failed to delete key {}/{}: {}" , namespace, key, e) ;
@@ -202,7 +213,7 @@ impl KVStore for SqliteStore {
202
213
let locked_conn = self . connection . lock ( ) . unwrap ( ) ;
203
214
204
215
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| {
206
217
let msg = format ! ( "Failed to prepare statement: {}" , e) ;
207
218
std:: io:: Error :: new ( std:: io:: ErrorKind :: Other , msg)
208
219
} ) ?;
0 commit comments