diff --git a/internal/sqladapter/database.go b/internal/sqladapter/database.go
index fd9a3577efa84637fbc25f7fe47b503ab1934460..9d7370fd826287eb0ded04893827e7662b98ff44 100644
--- a/internal/sqladapter/database.go
+++ b/internal/sqladapter/database.go
@@ -359,7 +359,7 @@ func (d *database) prepareStatement(stmt *exql.Statement) (*Stmt, string, error)
 	pc, ok := d.cachedStatements.ReadRaw(stmt)
 	if ok {
 		// The statement was cached.
-		ps := pc.(*Stmt).open()
+		ps := pc.(*Stmt).Open()
 		return ps, ps.query, nil
 	}
 
@@ -376,7 +376,7 @@ func (d *database) prepareStatement(stmt *exql.Statement) (*Stmt, string, error)
 		return nil, query, err
 	}
 
-	p := newCachedStatement(sqlStmt, query)
+	p := NewStatement(sqlStmt, query)
 	d.cachedStatements.Write(stmt, p)
 	return p, query, nil
 }
diff --git a/internal/sqladapter/statement.go b/internal/sqladapter/statement.go
index b9907d60c8db3109380562cf1afe07fe5158b344..be520be8fbf69f4f0b7bda247d944a3784f355a3 100644
--- a/internal/sqladapter/statement.go
+++ b/internal/sqladapter/statement.go
@@ -16,7 +16,8 @@ type Stmt struct {
 	dead  int32
 }
 
-func newCachedStatement(stmt *sql.Stmt, query string) *Stmt {
+// NewStatement creates an returns an opened statement
+func NewStatement(stmt *sql.Stmt, query string) *Stmt {
 	return &Stmt{
 		Stmt:  stmt,
 		query: query,
@@ -24,11 +25,13 @@ func newCachedStatement(stmt *sql.Stmt, query string) *Stmt {
 	}
 }
 
-func (c *Stmt) open() *Stmt {
+// Open marks the statement as in-use
+func (c *Stmt) Open() *Stmt {
 	atomic.AddInt64(&c.count, 1)
 	return c
 }
 
+// Close closes the underlying statement if no other go-routine is using it.
 func (c *Stmt) Close() {
 	if atomic.AddInt64(&c.count, -1) > 0 {
 		// There are another goroutines using this statement so we don't want to
@@ -41,6 +44,7 @@ func (c *Stmt) Close() {
 	}
 }
 
+// OnPurge marks the statement as ready to be cleaned up.
 func (c *Stmt) OnPurge() {
 	// Mark as dead, you can continue using it but it will be closed for real
 	// when c.count reaches 0.