@@ -990,6 +990,7 @@ func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) {
990
990
authPass := ""
991
991
authCrypt := ""
992
992
authSalt := ""
993
+ mutex := C .int (C .SQLITE_OPEN_FULLMUTEX )
993
994
txlock := "BEGIN"
994
995
995
996
// PRAGMA's
@@ -1006,7 +1007,6 @@ func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) {
1006
1007
secureDelete := "DEFAULT"
1007
1008
synchronousMode := "NORMAL"
1008
1009
writableSchema := - 1
1009
- flags := C .SQLITE_OPEN_READWRITE | C .SQLITE_OPEN_CREATE | C .SQLITE_OPEN_FULLMUTEX
1010
1010
1011
1011
pos := strings .IndexRune (dsn , '?' )
1012
1012
if pos >= 1 {
@@ -1015,17 +1015,6 @@ func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) {
1015
1015
return nil , err
1016
1016
}
1017
1017
1018
- if val := params .Get ("mode" ); val != "" {
1019
- switch val {
1020
- case "ro" :
1021
- flags |= C .SQLITE_OPEN_READONLY
1022
- case "rw" :
1023
- flags ^= C .SQLITE_OPEN_CREATE
1024
- case "rwc" :
1025
- flags |= C .SQLITE_OPEN_CREATE
1026
- }
1027
- }
1028
-
1029
1018
// Authentication
1030
1019
if _ , ok := params ["_auth" ]; ok {
1031
1020
authCreate = true
@@ -1060,9 +1049,9 @@ func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) {
1060
1049
if val := params .Get ("_mutex" ); val != "" {
1061
1050
switch strings .ToLower (val ) {
1062
1051
case "no" :
1063
- flags | = C .SQLITE_OPEN_NOMUTEX
1052
+ mutex = C .SQLITE_OPEN_NOMUTEX
1064
1053
case "full" :
1065
- flags | = C .SQLITE_OPEN_FULLMUTEX
1054
+ mutex = C .SQLITE_OPEN_FULLMUTEX
1066
1055
default :
1067
1056
return nil , fmt .Errorf ("Invalid _mutex: %v" , val )
1068
1057
}
@@ -1349,8 +1338,9 @@ func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) {
1349
1338
var db * C.sqlite3
1350
1339
name := C .CString (dsn )
1351
1340
defer C .free (unsafe .Pointer (name ))
1352
-
1353
- rv := C ._sqlite3_open_v2 (name , & db , C .int (flags ), nil )
1341
+ rv := C ._sqlite3_open_v2 (name , & db ,
1342
+ mutex | C .SQLITE_OPEN_READWRITE | C .SQLITE_OPEN_CREATE ,
1343
+ nil )
1354
1344
if rv != 0 {
1355
1345
if db != nil {
1356
1346
C .sqlite3_close_v2 (db )
0 commit comments