@@ -8,6 +8,7 @@ use libsqlite3_sys::{
8
8
sqlite3_load_extension, sqlite3_open_v2, SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION , SQLITE_OK ,
9
9
SQLITE_OPEN_CREATE , SQLITE_OPEN_FULLMUTEX , SQLITE_OPEN_MEMORY , SQLITE_OPEN_NOMUTEX ,
10
10
SQLITE_OPEN_PRIVATECACHE , SQLITE_OPEN_READONLY , SQLITE_OPEN_READWRITE , SQLITE_OPEN_SHAREDCACHE ,
11
+ SQLITE_OPEN_URI ,
11
12
} ;
12
13
use percent_encoding:: NON_ALPHANUMERIC ;
13
14
use sqlx_core:: IndexMap ;
@@ -67,11 +68,14 @@ impl EstablishParams {
67
68
} ) ?
68
69
. to_owned ( ) ;
69
70
71
+ // Set common flags we expect to have in sqlite
72
+ let mut flags = SQLITE_OPEN_URI ;
73
+
70
74
// By default, we connect to an in-memory database.
71
75
// [SQLITE_OPEN_NOMUTEX] will instruct [sqlite3_open_v2] to return an error if it
72
76
// cannot satisfy our wish for a thread-safe, lock-free connection object
73
77
74
- let mut flags = if options. serialized {
78
+ flags | = if options. serialized {
75
79
SQLITE_OPEN_FULLMUTEX
76
80
} else {
77
81
SQLITE_OPEN_NOMUTEX
@@ -111,7 +115,6 @@ impl EstablishParams {
111
115
percent_encoding:: percent_encode( filename. as_bytes( ) , NON_ALPHANUMERIC ) ,
112
116
serde_urlencoded:: to_string( & query_params) . unwrap( )
113
117
) ;
114
- flags |= libsqlite3_sys:: SQLITE_OPEN_URI ;
115
118
}
116
119
117
120
let filename = CString :: new ( filename) . map_err ( |_| {
0 commit comments