aboutsummaryrefslogtreecommitdiff
path: root/sqlite3.go
diff options
context:
space:
mode:
authormattn <mattn.jp@gmail.com>2013-08-23 09:57:22 +0900
committermattn <mattn.jp@gmail.com>2013-08-23 09:57:22 +0900
commitf6dadd82d81a644eb5b7c212a6f1770c0c87ba41 (patch)
treedefc6d64b8af1c9f81e13495f1bccdfb759e3a11 /sqlite3.go
parentRervert ff8e6729ce0628c3da97bd8e85c636f3645c2516 (diff)
downloadgolite-f6dadd82d81a644eb5b7c212a6f1770c0c87ba41.tar.gz
golite-f6dadd82d81a644eb5b7c212a6f1770c0c87ba41.tar.xz
Add new driver name 'sqlite3_with_extensions'
Diffstat (limited to 'sqlite3.go')
-rw-r--r--sqlite3.go13
1 files changed, 12 insertions, 1 deletions
diff --git a/sqlite3.go b/sqlite3.go
index b95f290..0aba2db 100644
--- a/sqlite3.go
+++ b/sqlite3.go
@@ -72,11 +72,13 @@ var SQLiteTimestampFormats = []string{
}
func init() {
- sql.Register("sqlite3", &SQLiteDriver{})
+ sql.Register("sqlite3", &SQLiteDriver{false})
+ sql.Register("sqlite3_with_extensions", &SQLiteDriver{true})
}
// Driver struct.
type SQLiteDriver struct {
+ enableLoadExtentions bool
}
// Conn struct.
@@ -176,6 +178,15 @@ func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) {
return nil, errors.New(C.GoString(C.sqlite3_errmsg(db)))
}
+ enableLoadExtentions := 0
+ if d.enableLoadExtentions {
+ enableLoadExtentions = 1
+ }
+ rv = C.sqlite3_enable_load_extension(db, C.int(enableLoadExtentions))
+ if rv != C.SQLITE_OK {
+ return nil, errors.New(C.GoString(C.sqlite3_errmsg(db)))
+ }
+
return &SQLiteConn{db}, nil
}