aboutsummaryrefslogtreecommitdiff
path: root/sqlite3_load_extension.go
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2024-08-12 15:42:56 -0300
committerEuAndreh <eu@euandre.org>2024-08-12 15:52:16 -0300
commit6bbc33b9e998af7ee45cca86e1290474603dff48 (patch)
tree5d0aff47783bc20dcf3f7862afdba0445e4c2fae /sqlite3_load_extension.go
parentAdd Makefile and build skeleton (diff)
downloadgolite-6bbc33b9e998af7ee45cca86e1290474603dff48.tar.gz
golite-6bbc33b9e998af7ee45cca86e1290474603dff48.tar.xz
Build with "go tool" and hackishly bundle code from same package into one file each
Diffstat (limited to 'sqlite3_load_extension.go')
-rw-r--r--sqlite3_load_extension.go85
1 files changed, 0 insertions, 85 deletions
diff --git a/sqlite3_load_extension.go b/sqlite3_load_extension.go
deleted file mode 100644
index 03cbc8b..0000000
--- a/sqlite3_load_extension.go
+++ /dev/null
@@ -1,85 +0,0 @@
-// Copyright (C) 2019 Yasuhiro Matsumoto <mattn.jp@gmail.com>.
-//
-// Use of this source code is governed by an MIT-style
-// license that can be found in the LICENSE file.
-
-//go:build !sqlite_omit_load_extension
-// +build !sqlite_omit_load_extension
-
-package sqlite3
-
-/*
-#ifndef USE_LIBSQLITE3
-#include "sqlite3-binding.h"
-#else
-#include <sqlite3.h>
-#endif
-#include <stdlib.h>
-*/
-import "C"
-import (
- "errors"
- "unsafe"
-)
-
-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
-}