summaryrefslogtreecommitdiff
path: root/vendor/modernc.org/sqlite
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/modernc.org/sqlite')
-rw-r--r--vendor/modernc.org/sqlite/AUTHORS1
-rw-r--r--vendor/modernc.org/sqlite/CONTRIBUTORS1
-rw-r--r--vendor/modernc.org/sqlite/Makefile2
-rw-r--r--vendor/modernc.org/sqlite/doc.go7
-rw-r--r--vendor/modernc.org/sqlite/sqlite.go37
5 files changed, 45 insertions, 3 deletions
diff --git a/vendor/modernc.org/sqlite/AUTHORS b/vendor/modernc.org/sqlite/AUTHORS
index e724f81cb..580af028f 100644
--- a/vendor/modernc.org/sqlite/AUTHORS
+++ b/vendor/modernc.org/sqlite/AUTHORS
@@ -8,6 +8,7 @@
#
# Please keep the list sorted.
+Angus Dippenaar <angusdippenaar@gmail.com>
Artyom Pervukhin <github@artyom.dev>
Dan Kortschak <dan@kortschak.io>
Dan Peterson <danp@danp.net>
diff --git a/vendor/modernc.org/sqlite/CONTRIBUTORS b/vendor/modernc.org/sqlite/CONTRIBUTORS
index ba51f0568..108a09dbb 100644
--- a/vendor/modernc.org/sqlite/CONTRIBUTORS
+++ b/vendor/modernc.org/sqlite/CONTRIBUTORS
@@ -8,6 +8,7 @@
Alexander Menzhinsky <amenzhinsky@gmail.com>
Alexey Palazhchenko <alexey.palazhchenko@gmail.com>
+Angus Dippenaar <angusdippenaar@gmail.com>
Artyom Pervukhin <github@artyom.dev>
Dan Kortschak <dan@kortschak.io>
Dan Peterson <danp@danp.net>
diff --git a/vendor/modernc.org/sqlite/Makefile b/vendor/modernc.org/sqlite/Makefile
index 0ce355fbb..2e3ad1de9 100644
--- a/vendor/modernc.org/sqlite/Makefile
+++ b/vendor/modernc.org/sqlite/Makefile
@@ -201,7 +201,7 @@ cpu: clean
edit:
@touch log
- @if [ -f "Session.vim" ]; then gvim -S & else gvim -p Makefile *.go & fi
+ @if [ -f "Session.vim" ]; then gvim -S & else gvim -p Makefile all_test.go sqlite.go & fi
editor:
gofmt -l -s -w *.go
diff --git a/vendor/modernc.org/sqlite/doc.go b/vendor/modernc.org/sqlite/doc.go
index 923a8db74..620bc262f 100644
--- a/vendor/modernc.org/sqlite/doc.go
+++ b/vendor/modernc.org/sqlite/doc.go
@@ -94,6 +94,13 @@
//
// # Changelog
//
+// 2023-12-14 v1.28.0:
+//
+// (*Driver).RegisterConnectionHook: added
+// ConnectionHookFn: added
+// ExecQuerierContext: added
+// RegisterConnectionHook: added
+//
// 2023-08-03 v1.25.0: enable SQLITE_ENABLE_DBSTAT_VTAB.
//
// 2023-07-11 v1.24.0:
diff --git a/vendor/modernc.org/sqlite/sqlite.go b/vendor/modernc.org/sqlite/sqlite.go
index ec5b2c0f9..9763713fa 100644
--- a/vendor/modernc.org/sqlite/sqlite.go
+++ b/vendor/modernc.org/sqlite/sqlite.go
@@ -1844,17 +1844,32 @@ func (b *Backup) Finish() error {
}
}
+type ExecQuerierContext interface {
+ driver.ExecerContext
+ driver.QueryerContext
+}
+
+// ConnectionHookFn function type for a connection hook on the Driver. Connection
+// hooks are called after the connection has been set up.
+type ConnectionHookFn func(
+ conn ExecQuerierContext,
+ dsn string,
+) error
+
// Driver implements database/sql/driver.Driver.
type Driver struct {
// user defined functions that are added to every new connection on Open
udfs map[string]*userDefinedFunction
// collations that are added to every new connection on Open
collations map[string]*collation
+ // connection hooks are called after a connection is opened
+ connectionHooks []ConnectionHookFn
}
var d = &Driver{
- udfs: make(map[string]*userDefinedFunction, 0),
- collations: make(map[string]*collation, 0),
+ udfs: make(map[string]*userDefinedFunction, 0),
+ collations: make(map[string]*collation, 0),
+ connectionHooks: make([]ConnectionHookFn, 0),
}
func newDriver() *Driver { return d }
@@ -1909,6 +1924,12 @@ func (d *Driver) Open(name string) (conn driver.Conn, err error) {
return nil, err
}
}
+ for _, connHookFn := range d.connectionHooks {
+ if err = connHookFn(c, name); err != nil {
+ c.Close()
+ return nil, fmt.Errorf("connection hook: %w", err)
+ }
+ }
return c, nil
}
@@ -2063,6 +2084,18 @@ func registerFunction(
return nil
}
+// RegisterConnectionHook registers a function to be called after each connection
+// is opened. This is called after all the connection has been set up.
+func (d *Driver) RegisterConnectionHook(fn ConnectionHookFn) {
+ d.connectionHooks = append(d.connectionHooks, fn)
+}
+
+// RegisterConnectionHook registers a function to be called after each connection
+// is opened. This is called after all the connection has been set up.
+func RegisterConnectionHook(fn ConnectionHookFn) {
+ d.RegisterConnectionHook(fn)
+}
+
func origin(skip int) string {
pc, fn, fl, _ := runtime.Caller(skip)
f := runtime.FuncForPC(pc)