@@ -10,7 +10,7 @@ const TABLE_SUMMARIES: &'static str = "\
10
10
CREATE TABLE IF NOT EXISTS summaries (
11
11
name TEXT PRIMARY KEY NOT NULL,
12
12
contents BLOB NOT NULL
13
- )" ;
13
+ ) WITHOUT ROWID " ;
14
14
15
15
const INSERT_SUMMERIES : & ' static str = "\
16
16
INSERT OR REPLACE INTO summaries (name, contents) VALUES (?, ?)";
@@ -25,6 +25,7 @@ impl Db {
25
25
let conn = Connection :: open ( path. as_ref ( ) ) ?;
26
26
conn. pragma_update ( None , "locking_mode" , & "EXCLUSIVE" ) ?;
27
27
conn. pragma_update ( None , "cache_size" , & 2048 ) ?;
28
+ conn. pragma_update ( None , "journal_mode" , & "WAL" ) ?;
28
29
conn. execute ( TABLE_SUMMARIES , [ ] ) ?;
29
30
Ok ( Mutex :: new ( Self ( conn) ) )
30
31
} )
@@ -35,19 +36,21 @@ impl Db {
35
36
K : AsRef < [ u8 ] > ,
36
37
{
37
38
let key = key. as_ref ( ) ;
38
- Ok ( self . 0 . query_row (
39
- "SELECT contents FROM summaries WHERE name = ? LIMIT 1" ,
40
- [ key] ,
41
- |row| row. get ( 0 ) ,
42
- ) ?)
39
+ Ok ( self
40
+ . 0
41
+ . prepare_cached ( "SELECT contents FROM summaries WHERE name = ? LIMIT 1" ) ?
42
+ . query_row ( [ key] , |row| row. get ( 0 ) ) ?)
43
43
}
44
44
45
45
pub fn insert < K > ( & self , key : K , value : & [ u8 ] ) -> CargoResult < ( ) >
46
46
where
47
47
K : AsRef < [ u8 ] > ,
48
48
{
49
49
let key = key. as_ref ( ) ;
50
- let modified = self . 0 . execute ( INSERT_SUMMERIES , params ! [ key, value] ) ?;
50
+ let modified = self
51
+ . 0
52
+ . prepare_cached ( INSERT_SUMMERIES ) ?
53
+ . execute ( params ! [ key, value] ) ?;
51
54
log:: debug!(
52
55
"insert {} record for {}" ,
53
56
modified,
0 commit comments