From 64c4b9e403134a70b14cead475d287f11e5c08ff Mon Sep 17 00:00:00 2001 From: Andrew Wilkins Date: Tue, 10 Nov 2020 11:00:53 +0800 Subject: [PATCH] module/apmsql: add tracingDriver.Unwrap method Fixes https://github.com/elastic/apm-agent-go/issues/848 --- CHANGELOG.asciidoc | 2 ++ module/apmsql/apmsql_test.go | 12 ++++++++++++ module/apmsql/driver.go | 5 +++++ 3 files changed, 19 insertions(+) diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 34d65db05..cedd466e1 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -23,6 +23,8 @@ endif::[] https://github.com/elastic/apm-agent-go/compare/v1.9.0...master[View commits] +- module/apmsql: add tracingDriver.Unwrap method to get underlying driver {pull}#849[#(849)] + [[release-notes-1.x]] === Go Agent version 1.x diff --git a/module/apmsql/apmsql_test.go b/module/apmsql/apmsql_test.go index a35b32fd7..286d99e8e 100644 --- a/module/apmsql/apmsql_test.go +++ b/module/apmsql/apmsql_test.go @@ -37,6 +37,18 @@ func init() { apmsql.Register("sqlite3_test", &sqlite3TestDriver{}) } +func TestDriverUnwrap(t *testing.T) { + var underlying struct { + driver.Driver + } + type Unwrapper interface { + Unwrap() driver.Driver + } + wrapped := apmsql.Wrap(&underlying) + u := wrapped.(Unwrapper) + assert.Equal(t, &underlying, u.Unwrap()) +} + func TestPingContext(t *testing.T) { db, err := apmsql.Open("sqlite3", ":memory:") require.NoError(t, err) diff --git a/module/apmsql/driver.go b/module/apmsql/driver.go index 07c06da7e..ad56fbee6 100644 --- a/module/apmsql/driver.go +++ b/module/apmsql/driver.go @@ -152,3 +152,8 @@ func (d *tracingDriver) Open(name string) (driver.Conn, error) { } return newConn(conn, d, d.dsnParser(name)), nil } + +// Unwrap returns the wrapped database/sql/driver.Driver. +func (d *tracingDriver) Unwrap() driver.Driver { + return d.Driver +}