func WrapDriver(dri driver.Driver, dbSystem string, options ...Option) driver.Driver {
	return newDriver(dri, newConfig(dbSystem, options...))
}
WrapDriver takes a SQL driver and wraps it with OTel instrumentation.
Parameter dbSystem is an identifier for the database management system (DBMS)
product being used.

For more information, see semantic conventions for database
https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/database.md
package otelsql
import (
	"database/sql"
	"database/sql/driver"
	"errors"
	"strconv"
	"sync"
)
var registerLock sync.Mutex
var maxDriverSlot = 1000
func Register(driverName string, dbSystem string, options ...Option) (string, error) {
	db, err := sql.Open(driverName, "")
	if err != nil {
		return "", err
	}
	dri := db.Driver()
	if err = db.Close(); err != nil {
		return "", err
	}
	registerLock.Lock()
	defer registerLock.Unlock()
	driverName = driverName + "-otelsql-"
	for i := 0; i < maxDriverSlot; i++ {
		var (
			found   = false
			regName = driverName + strconv.FormatInt(int64(i), 10)
		)
		for _, name := range sql.Drivers() {
			if name == regName {
				found = true
			}
		}
		if !found {
			sql.Register(regName, newDriver(dri, newConfig(dbSystem, options...)))
			return regName, nil
		}
	}
	return "", errors.New("unable to register driver, all slots have been taken")
}