Skip to content

Commit 7c278c5

Browse files
committed
DSN tweaks.
1 parent 61d8d97 commit 7c278c5

2 files changed

Lines changed: 12 additions & 10 deletions

File tree

conn.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,8 +119,8 @@ func (c *Conn) openDB(filename string, flags OpenFlag) (ptr_t, error) {
119119
c.wrp.Xsqlite3_progress_handler_go(int32(handle), 1000)
120120
if flags|OPEN_URI != 0 && strings.HasPrefix(filename, "file:") {
121121
var pragmas strings.Builder
122-
if _, after, ok := strings.Cut(filename, "?"); ok {
123-
query, _ := url.ParseQuery(after)
122+
if u, err := url.Parse(filename); err == nil {
123+
query := u.Query()
124124
for _, p := range query["_pragma"] {
125125
pragmas.WriteString(`PRAGMA `)
126126
pragmas.WriteString(p)

driver/driver.go

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -174,15 +174,17 @@ func newConnector(name string, init, term func(*sqlite3.Conn) error) (*connector
174174

175175
var txlock, timefmt string
176176
if strings.HasPrefix(name, "file:") {
177-
if _, after, ok := strings.Cut(name, "?"); ok {
178-
query, err := url.ParseQuery(after)
179-
if err != nil {
180-
return nil, err
181-
}
182-
txlock = query.Get("_txlock")
183-
timefmt = query.Get("_timefmt")
184-
c.pragmas = query.Has("_pragma")
177+
u, err := url.Parse(name)
178+
if err != nil {
179+
return nil, err
180+
}
181+
query, err := url.ParseQuery(u.RawQuery)
182+
if err != nil {
183+
return nil, err
185184
}
185+
txlock = query.Get("_txlock")
186+
timefmt = query.Get("_timefmt")
187+
c.pragmas = query.Has("_pragma")
186188
}
187189

188190
switch txlock {

0 commit comments

Comments
 (0)