Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 2915940

Browse files
committed
Revert "SQLITE_OPEN_CREATE should be specified for sqlite3_open_v2 if mode is not rw"
This reverts commit 03b96a5.
1 parent 248a1e6 commit 2915940

File tree

1 file changed

+6
-16
lines changed

1 file changed

+6
-16
lines changed

‎sqlite3.go

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -990,6 +990,7 @@ func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) {
990990
authPass := ""
991991
authCrypt := ""
992992
authSalt := ""
993+
mutex := C.int(C.SQLITE_OPEN_FULLMUTEX)
993994
txlock := "BEGIN"
994995

995996
// PRAGMA's
@@ -1006,7 +1007,6 @@ func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) {
10061007
secureDelete := "DEFAULT"
10071008
synchronousMode := "NORMAL"
10081009
writableSchema := -1
1009-
flags := C.SQLITE_OPEN_READWRITE | C.SQLITE_OPEN_CREATE | C.SQLITE_OPEN_FULLMUTEX
10101010

10111011
pos := strings.IndexRune(dsn, '?')
10121012
if pos >= 1 {
@@ -1015,17 +1015,6 @@ func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) {
10151015
return nil, err
10161016
}
10171017

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-
10291018
// Authentication
10301019
if _, ok := params["_auth"]; ok {
10311020
authCreate = true
@@ -1060,9 +1049,9 @@ func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) {
10601049
if val := params.Get("_mutex"); val != "" {
10611050
switch strings.ToLower(val) {
10621051
case "no":
1063-
flags|= C.SQLITE_OPEN_NOMUTEX
1052+
mutex= C.SQLITE_OPEN_NOMUTEX
10641053
case "full":
1065-
flags|= C.SQLITE_OPEN_FULLMUTEX
1054+
mutex= C.SQLITE_OPEN_FULLMUTEX
10661055
default:
10671056
return nil, fmt.Errorf("Invalid _mutex: %v", val)
10681057
}
@@ -1349,8 +1338,9 @@ func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) {
13491338
var db *C.sqlite3
13501339
name := C.CString(dsn)
13511340
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)
13541344
if rv != 0 {
13551345
if db != nil {
13561346
C.sqlite3_close_v2(db)

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /