aboutsummaryrefslogtreecommitdiff
path: root/sqlite3.go
diff options
context:
space:
mode:
authorJesse Rittner <rittneje@gmail.com>2018-12-08 08:01:50 -0500
committerJesse Rittner <rittneje@gmail.com>2018-12-08 08:01:50 -0500
commit291594080b0d573ce70cd115da9fc19c91bdfd09 (patch)
treee7731aa99547436f44d45eb2947555b3028acefe /sqlite3.go
parentMerge pull request #671 from mattn/fix667 (diff)
downloadgolite-291594080b0d573ce70cd115da9fc19c91bdfd09.tar.gz
golite-291594080b0d573ce70cd115da9fc19c91bdfd09.tar.xz
Revert "SQLITE_OPEN_CREATE should be specified for sqlite3_open_v2 if mode is not rw"
This reverts commit 03b96a53baf1987fe52b653ce0d1817e549259b8.
Diffstat (limited to 'sqlite3.go')
-rw-r--r--sqlite3.go22
1 files 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)