server

package
v0.5.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 5, 2019 License: Apache-2.0 Imports: 16 Imported by: 15

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DefaultSessionBuilder

func DefaultSessionBuilder(c *mysql.Conn, addr string) sql.Session

DefaultSessionBuilder is a SessionBuilder that returns a base session.

Types

type Config

type Config struct {
	// Protocol for the connection.
	Protocol string
	// Address of the server.
	Address string
	// Auth of the server.
	Auth auth.Auth
	// Tracer to use in the server. By default, a noop tracer will be used if
	// no tracer is provided.
	Tracer opentracing.Tracer

	ConnReadTimeout  time.Duration
	ConnWriteTimeout time.Duration
}

Config for the mysql server.

type DoneFunc

type DoneFunc func()

DoneFunc is a function that must be executed when the session is used and it can be disposed.

type Handler

type Handler struct {
	// contains filtered or unexported fields
}

Handler is a connection handler for a SQLe engine.

func NewHandler

func NewHandler(e *sqle.Engine, sm *SessionManager) *Handler

NewHandler creates a new Handler given a SQLe engine.

func (*Handler) ComQuery

func (h *Handler) ComQuery(
	c *mysql.Conn,
	query string,
	callback func(*sqltypes.Result) error,
) (err error)

ComQuery executes a SQL query on the SQLe engine.

func (*Handler) ConnectionClosed

func (h *Handler) ConnectionClosed(c *mysql.Conn)

ConnectionClosed reports that a connection has been closed.

func (*Handler) NewConnection

func (h *Handler) NewConnection(c *mysql.Conn)

NewConnection reports that a new connection has been established.

func (*Handler) WarningCount added in v0.2.0

func (h *Handler) WarningCount(c *mysql.Conn) uint16

WarningCount is called at the end of each query to obtain the value to be returned to the client in the EOF packet. Note that this will be called either in the context of the ComQuery callback if the result does not contain any fields, or after the last ComQuery call completes.

type Server

type Server struct {
	Listener *mysql.Listener
}

Server is a MySQL server for SQLe engines.

func NewDefaultServer

func NewDefaultServer(cfg Config, e *sqle.Engine) (*Server, error)

NewDefaultServer creates a Server with the default session builder.

func NewServer

func NewServer(cfg Config, e *sqle.Engine, sb SessionBuilder) (*Server, error)

NewServer creates a server with the given protocol, address, authentication details given a SQLe engine and a session builder.

func (*Server) Close

func (s *Server) Close() error

Close closes the server connection.

func (*Server) Start

func (s *Server) Start() error

Start starts accepting connections on the server.

type SessionBuilder

type SessionBuilder func(conn *mysql.Conn, addr string) sql.Session

SessionBuilder creates sessions given a MySQL connection and a server address.

type SessionManager

type SessionManager struct {
	// contains filtered or unexported fields
}

SessionManager is in charge of creating new sessions for the given connections and keep track of which sessions are in each connection, so they can be cancelled is the connection is closed.

func NewSessionManager

func NewSessionManager(
	builder SessionBuilder,
	tracer opentracing.Tracer,
	addr string,
) *SessionManager

NewSessionManager creates a SessionManager with the given SessionBuilder.

func (*SessionManager) CloseConn

func (s *SessionManager) CloseConn(conn *mysql.Conn)

CloseConn closes the connection in the session manager and all its associated contexts, which are cancelled.

func (*SessionManager) NewContext

func (s *SessionManager) NewContext(conn *mysql.Conn) *sql.Context

NewContext creates a new context for the session at the given conn.

func (*SessionManager) NewContextWithQuery added in v0.2.0

func (s *SessionManager) NewContextWithQuery(
	conn *mysql.Conn,
	query string,
) *sql.Context

NewContextWithQuery creates a new context for the session at the given conn.

func (*SessionManager) NewSession

func (s *SessionManager) NewSession(conn *mysql.Conn)

NewSession creates a Session for the given connection and saves it to session pool.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL