From 291594080b0d573ce70cd115da9fc19c91bdfd09 Mon Sep 17 00:00:00 2001 From: Jesse Rittner Date: Sat, 8 Dec 2018 08:01:50 -0500 Subject: [PATCH] Revert "SQLITE_OPEN_CREATE should be specified for sqlite3_open_v2 if mode is not rw" This reverts commit 03b96a53baf1987fe52b653ce0d1817e549259b8. --- sqlite3.go | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/sqlite3.go b/sqlite3.go index 7506522..f731d20 100644 --- a/sqlite3.go +++ b/sqlite3.go @@ -990,6 +990,7 @@ func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) { authPass := "" authCrypt := "" authSalt := "" + mutex := C.int(C.SQLITE_OPEN_FULLMUTEX) txlock := "BEGIN" // PRAGMA's @@ -1006,7 +1007,6 @@ func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) { secureDelete := "DEFAULT" synchronousMode := "NORMAL" writableSchema := -1 - flags := C.SQLITE_OPEN_READWRITE | C.SQLITE_OPEN_CREATE | C.SQLITE_OPEN_FULLMUTEX pos := strings.IndexRune(dsn, '?') if pos >= 1 { @@ -1015,17 +1015,6 @@ func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) { return nil, err } - if val := params.Get("mode"); val != "" { - switch val { - case "ro": - flags |= C.SQLITE_OPEN_READONLY - case "rw": - flags ^= C.SQLITE_OPEN_CREATE - case "rwc": - flags |= C.SQLITE_OPEN_CREATE - } - } - // Authentication if _, ok := params["_auth"]; ok { authCreate = true @@ -1060,9 +1049,9 @@ func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) { if val := params.Get("_mutex"); val != "" { switch strings.ToLower(val) { case "no": - flags |= C.SQLITE_OPEN_NOMUTEX + mutex = C.SQLITE_OPEN_NOMUTEX case "full": - flags |= C.SQLITE_OPEN_FULLMUTEX + mutex = C.SQLITE_OPEN_FULLMUTEX default: return nil, fmt.Errorf("Invalid _mutex: %v", val) } @@ -1349,8 +1338,9 @@ func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) { var db *C.sqlite3 name := C.CString(dsn) defer C.free(unsafe.Pointer(name)) - - rv := C._sqlite3_open_v2(name, &db, C.int(flags), nil) + rv := C._sqlite3_open_v2(name, &db, + mutex|C.SQLITE_OPEN_READWRITE|C.SQLITE_OPEN_CREATE, + nil) if rv != 0 { if db != nil { C.sqlite3_close_v2(db)