Skip to content

Commit a16d686

Browse files
committed
f Switch to prepare_cached statements everywhere
1 parent 6123531 commit a16d686

File tree

1 file changed

+29
-18
lines changed

1 file changed

+29
-18
lines changed

lightning-persister/src/sqlite_store.rs

Lines changed: 29 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)