-
Notifications
You must be signed in to change notification settings - Fork 67
Open
Description
I hpoe support multy pragam just like add code bellow:
pragmaMap := map[string]string{}
pragmaKey := ""
pragmaCipherPageSize := -1
pos := strings.IndexRune(dsn, '?')
if pos >= 1 {
params, err := url.ParseQuery(dsn[pos+1:])
if err != nil {
return nil, err
}
// support multi pragma
for key, strArr := range params {
if strings.Contains(key, "_pragma_") {
pragmaMap[key[8:]] = strArr[0]
}
}
.....
}
// _pragma_key
if pragmaKey != "" {
query := fmt.Sprintf("PRAGMA key = \"%s\";", pragmaKey)
if err := exec(query); err != nil {
C.sqlite3_close_v2(db)
return nil, err
}
}
// _pragma_cipher_page_size
if pragmaCipherPageSize != -1 {
query := fmt.Sprintf("PRAGMA cipher_page_size = %d;",
pragmaCipherPageSize)
if err := exec(query); err != nil {
C.sqlite3_close_v2(db)
return nil, err
}
}
// support multi pragma
for key, val := range pragmaMap {
if val != "" && key != "key" && key != "cipher_page_size" {
query := fmt.Sprintf("PRAGMA %s = %s;", key, val)
if err := exec(query); err != nil {
C.sqlite3_close_v2(db)
return nil, err
}
}
}
Metadata
Metadata
Assignees
Labels
No labels