Skip to content

[Question] Exposing internal types. #620

Open
@achille-roussel

Description

@achille-roussel

Issue description

I'd like to know if the maintainers of this package would be open to expose internal types to allow the driver to be integrated with more than the standard database/sql package?

One of the upsides would be the ability to bypass database/sql on hot code paths to work around the inefficiencies of its design (using interfaces causes massive amounts of extra dynamic memory allocations).

I'll be happy to submit a pull request to make this change if you guys feel like this would be a good change to make.

Example code

Here's how I imagine one could use it:

// Adding this method to the driver would allow the program to open a MySQL connection
// which it would have to maintain, but now it has access to a concrete type which gives
// opportunities for the compiler to generate more efficient code wherever it is used.
func (MySQLDriver) OpenConn(ctx context.Context, dsn string) (*Conn, error) {
  ...
}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions