diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/golite.go | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/src/golite.go b/src/golite.go index cfc1484..d40d393 100644 --- a/src/golite.go +++ b/src/golite.go @@ -1128,7 +1128,6 @@ const ( // SQLiteDriver implements driver.Driver. type SQLiteDriver struct { - Extensions []string ConnectHook func(*SQLiteConn) error } @@ -2134,13 +2133,6 @@ func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) { } } - if len(d.Extensions) > 0 { - if err := conn.loadExtensions(d.Extensions); err != nil { - conn.Close() - return nil, err - } - } - if d.ConnectHook != nil { if err := d.ConnectHook(conn); err != nil { conn.Close() @@ -2791,68 +2783,6 @@ func (s *SQLiteStmt) ExecContext(ctx context.Context, args []driver.NamedValue) return s.exec(ctx, args) } -func (c *SQLiteConn) loadExtensions(extensions []string) error { - rv := C.sqlite3_enable_load_extension(c.db, 1) - if rv != C.SQLITE_OK { - return errors.New(C.GoString(C.sqlite3_errmsg(c.db))) - } - - for _, extension := range extensions { - if err := c.loadExtension(extension, nil); err != nil { - C.sqlite3_enable_load_extension(c.db, 0) - return err - } - } - - rv = C.sqlite3_enable_load_extension(c.db, 0) - if rv != C.SQLITE_OK { - return errors.New(C.GoString(C.sqlite3_errmsg(c.db))) - } - - return nil -} - -// LoadExtension load the sqlite3 extension. -func (c *SQLiteConn) LoadExtension(lib string, entry string) error { - rv := C.sqlite3_enable_load_extension(c.db, 1) - if rv != C.SQLITE_OK { - return errors.New(C.GoString(C.sqlite3_errmsg(c.db))) - } - - if err := c.loadExtension(lib, &entry); err != nil { - C.sqlite3_enable_load_extension(c.db, 0) - return err - } - - rv = C.sqlite3_enable_load_extension(c.db, 0) - if rv != C.SQLITE_OK { - return errors.New(C.GoString(C.sqlite3_errmsg(c.db))) - } - - return nil -} - -func (c *SQLiteConn) loadExtension(lib string, entry *string) error { - clib := C.CString(lib) - defer C.free(unsafe.Pointer(clib)) - - var centry *C.char - if entry != nil { - centry = C.CString(*entry) - defer C.free(unsafe.Pointer(centry)) - } - - var errMsg *C.char - defer C.sqlite3_free(unsafe.Pointer(errMsg)) - - rv := C.sqlite3_load_extension(c.db, clib, centry, &errMsg) - if rv != C.SQLITE_OK { - return errors.New(C.GoString(errMsg)) - } - - return nil -} - // ColumnTableName returns the table that is the origin of a particular result // column in a SELECT statement. // |