Skip to content

Commit 22d7351

Browse files
committed
Merge pull request #298 from shaxbee/master
Expose LoadExtension with entry point
2 parents 0d70831 + da9decb commit 22d7351

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

sqlite3_load_extension.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,27 @@ func (c *SQLiteConn) loadExtensions(extensions []string) error {
3737
}
3838
return nil
3939
}
40+
41+
func (c *SQLiteConn) LoadExtension(lib string, entry string) error {
42+
rv := C.sqlite3_enable_load_extension(c.db, 1)
43+
if rv != C.SQLITE_OK {
44+
return errors.New(C.GoString(C.sqlite3_errmsg(c.db)))
45+
}
46+
47+
clib := C.CString(lib)
48+
defer C.free(unsafe.Pointer(clib))
49+
centry := C.CString(entry)
50+
defer C.free(unsafe.Pointer(centry))
51+
52+
rv = C.sqlite3_load_extension(c.db, clib, centry, nil)
53+
if rv != C.SQLITE_OK {
54+
return errors.New(C.GoString(C.sqlite3_errmsg(c.db)))
55+
}
56+
57+
rv = C.sqlite3_enable_load_extension(c.db, 0)
58+
if rv != C.SQLITE_OK {
59+
return errors.New(C.GoString(C.sqlite3_errmsg(c.db)))
60+
}
61+
62+
return nil
63+
}

0 commit comments

Comments
 (0)