Documentation ¶
Index ¶
- Constants
- Variables
- func NewListener(listenerCfg mysql.ListenerConfig) (server.ProtocolListener, error)
- func NewListenerWithOpts(listenerCfg mysql.ListenerConfig, opts ...ListenerOpt) (server.ProtocolListener, error)
- func Ptr[T any](v T) *T
- func RunInMemory(cfg *DoltgresConfig) (*svcs.Controller, error)
- func RunOnDisk(ctx context.Context, cfg *DoltgresConfig, dEnv *env.DoltEnv) (*svcs.Controller, error)
- type ConnectionHandler
- type ConvertedQuery
- type DoltgesMetricsConfig
- type DoltgresBehaviorConfig
- type DoltgresConfig
- func (cfg *DoltgresConfig) AllowCleartextPasswords() bool
- func (cfg *DoltgresConfig) AutoCommit() bool
- func (cfg *DoltgresConfig) BranchControlFilePath() string
- func (cfg *DoltgresConfig) CfgDir() string
- func (cfg *DoltgresConfig) ClusterConfig() cluster.Config
- func (cfg *DoltgresConfig) DataDir() string
- func (cfg *DoltgresConfig) DisableClientMultiStatements() bool
- func (cfg *DoltgresConfig) DoltTransactionCommit() bool
- func (cfg *DoltgresConfig) EventSchedulerStatus() string
- func (cfg *DoltgresConfig) Host() string
- func (cfg *DoltgresConfig) JwksConfig() []engine.JwksConfig
- func (cfg *DoltgresConfig) LogLevel() sqlserver.LogLevel
- func (cfg *DoltgresConfig) MaxConnections() uint64
- func (cfg *DoltgresConfig) MaxLoggedQueryLen() int
- func (cfg *DoltgresConfig) MetricsHost() string
- func (cfg *DoltgresConfig) MetricsLabels() map[string]string
- func (cfg *DoltgresConfig) MetricsPort() int
- func (cfg *DoltgresConfig) Password() string
- func (cfg *DoltgresConfig) PersistenceBehavior() string
- func (cfg *DoltgresConfig) Port() int
- func (cfg *DoltgresConfig) PrivilegeFilePath() string
- func (cfg *DoltgresConfig) QueryParallelism() int
- func (cfg *DoltgresConfig) ReadOnly() bool
- func (cfg *DoltgresConfig) ReadTimeout() uint64
- func (cfg *DoltgresConfig) RemotesapiPort() *int
- func (cfg *DoltgresConfig) RemotesapiReadOnly() *bool
- func (cfg *DoltgresConfig) RequireSecureTransport() bool
- func (cfg *DoltgresConfig) ShouldEncodeLoggedQuery() bool
- func (cfg *DoltgresConfig) Socket() string
- func (cfg *DoltgresConfig) SystemVars() engine.SystemVariables
- func (cfg *DoltgresConfig) TLSCert() string
- func (cfg *DoltgresConfig) TLSKey() string
- func (cfg *DoltgresConfig) ToSqlServerConfig() sqlserver.ServerConfig
- func (cfg *DoltgresConfig) User() string
- func (cfg *DoltgresConfig) UserVars() []sqlserver.UserSessionVars
- func (cfg *DoltgresConfig) ValueSet(value string) bool
- func (cfg *DoltgresConfig) WriteTimeout() uint64
- type DoltgresListenerConfig
- type DoltgresPerformanceConfig
- type DoltgresRemotesapiConfig
- type DoltgresUserConfig
- type DoltgresUserSessionVars
- type Listener
- type ListenerOpt
- type PortalData
- type PostgresReplicationConfig
- type PreparedStatementData
Constants ¶
const ( Version = "0.7.0" // DOLTGRES_DATA_DIR is an environment variable that defines the location of DoltgreSQL databases DOLTGRES_DATA_DIR = "DOLTGRES_DATA_DIR" // DOLTGRES_DATA_DIR_DEFAULT is the portion to append to the user's home directory if DOLTGRES_DATA_DIR has not been specified DOLTGRES_DATA_DIR_DEFAULT = "doltgres/databases" DefUserName = "postres" DefUserEmail = "postgres@somewhere.com" DoltgresDir = "doltgres" )
const (
OverrideDataDirKey = "data_dir"
)
Variables ¶
var ConfigHelp = `Place holder. This will be replaced with details on config.yaml options`
Functions ¶
func NewListener ¶
func NewListener(listenerCfg mysql.ListenerConfig) (server.ProtocolListener, error)
NewListener creates a new Listener.
func NewListenerWithOpts ¶ added in v0.5.0
func NewListenerWithOpts(listenerCfg mysql.ListenerConfig, opts ...ListenerOpt) (server.ProtocolListener, error)
func RunInMemory ¶
func RunInMemory(cfg *DoltgresConfig) (*svcs.Controller, error)
RunInMemory starts the server based on the given args, while also using RAM as the backing store. The returned WaitGroup may be used to wait for the server to close.
func RunOnDisk ¶
func RunOnDisk(ctx context.Context, cfg *DoltgresConfig, dEnv *env.DoltEnv) (*svcs.Controller, error)
RunOnDisk starts the server based on the given args, while also using the local disk as the backing store. The returned WaitGroup may be used to wait for the server to close.
Types ¶
type ConnectionHandler ¶ added in v0.4.0
type ConnectionHandler struct {
// contains filtered or unexported fields
}
ConnectionHandler is responsible for the entire lifecycle of a user connection: receiving messages they send, executing queries, sending the correct messages in return, and terminating the connection when appropriate.
func NewConnectionHandler ¶ added in v0.4.0
func NewConnectionHandler(conn net.Conn, handler mysql.Handler) *ConnectionHandler
NewConnectionHandler returns a new ConnectionHandler for the connection provided
func (*ConnectionHandler) Conn ¶ added in v0.4.0
func (h *ConnectionHandler) Conn() net.Conn
Conn returns the underlying net.Conn for this connection.
func (*ConnectionHandler) HandleConnection ¶ added in v0.4.0
func (h *ConnectionHandler) HandleConnection()
HandleConnection handles a connection's session, reading messages, executing queries, and sending responses. Expected to run in a goroutine per connection.
type ConvertedQuery ¶ added in v0.2.0
ConvertedQuery represents a query that has been converted from the Postgres representation to the Vitess representation. String may contain the string version of the converted query. AST will contain the tree version of the converted query, and is the recommended form to use. If AST is nil, then use the String version, otherwise always prefer to AST.
type DoltgesMetricsConfig ¶ added in v0.7.0
type DoltgresBehaviorConfig ¶ added in v0.7.0
type DoltgresBehaviorConfig struct { ReadOnly *bool `yaml:"read_only,omitempty" minver:"TBD"` // Disable processing CLIENT_MULTI_STATEMENTS support on the // sql server. Dolt's handling of CLIENT_MULTI_STATEMENTS is currently // broken. If a client advertises to support it (mysql cli client // does), and then sends statements that contain embedded unquoted ';'s // (such as a CREATE TRIGGER), then those incoming queries will be // misprocessed. DisableClientMultiStatements *bool `yaml:"disable_client_multi_statements,omitempty" minver:"TBD"` // DoltTransactionCommit enables the @@dolt_transaction_commit system variable, which // automatically creates a Dolt commit when any SQL transaction is committed. DoltTransactionCommit *bool `yaml:"dolt_transaction_commit,omitempty" minver:"TBD"` }
BehaviorYAMLConfig contains server configuration regarding how the server should behave
type DoltgresConfig ¶ added in v0.7.0
type DoltgresConfig struct { LogLevelStr *string `yaml:"log_level,omitempty" minver:"TBD"` MaxLenInLogs *int `yaml:"max_query_len_in_logs,omitempty" minver:"TBD"` EncodeLoggedQuery *bool `yaml:"encode_logged_query,omitempty" minver:"TBD"` BehaviorConfig *DoltgresBehaviorConfig `yaml:"behavior,omitempty" minver:"TBD"` UserConfig *DoltgresUserConfig `yaml:"user,omitempty" minver:"TBD"` ListenerConfig *DoltgresListenerConfig `yaml:"listener,omitempty" minver:"TBD"` PerformanceConfig *DoltgresPerformanceConfig `yaml:"performance,omitempty" minver:"TBD"` DataDirStr *string `yaml:"data_dir,omitempty" minver:"TBD"` CfgDirStr *string `yaml:"cfg_dir,omitempty" minver:"TBD"` MetricsConfig *DoltgesMetricsConfig `yaml:"metrics,omitempty" minver:"TBD"` RemotesapiConfig *DoltgresRemotesapiConfig `yaml:"remotesapi,omitempty" minver:"TBD"` PrivilegeFile *string `yaml:"privilege_file,omitempty" minver:"TBD"` BranchControlFile *string `yaml:"branch_control_file,omitempty" minver:"TBD"` // TODO: Rename to UserVars_ Vars []DoltgresUserSessionVars `yaml:"user_session_vars,omitempty" minver:"TBD"` SystemVariables *engine.SystemVariables `yaml:"system_variables,omitempty" minver:"TBD"` Jwks []engine.JwksConfig `yaml:"jwks,omitempty" minver:"TBD"` GoldenMysqlConn *string `yaml:"golden_mysql_conn,omitempty" minver:"TBD"` PostgresReplicationConfig *PostgresReplicationConfig `yaml:"postgres_replication,omitempty" minver:"TBD"` }
func ConfigFromYamlData ¶ added in v0.7.0
func ConfigFromYamlData(configFileData []byte, overrides map[string]string) (*DoltgresConfig, error)
func ReadConfigFromYamlFile ¶ added in v0.7.0
func (*DoltgresConfig) AllowCleartextPasswords ¶ added in v0.7.0
func (cfg *DoltgresConfig) AllowCleartextPasswords() bool
func (*DoltgresConfig) AutoCommit ¶ added in v0.7.0
func (cfg *DoltgresConfig) AutoCommit() bool
func (*DoltgresConfig) BranchControlFilePath ¶ added in v0.7.0
func (cfg *DoltgresConfig) BranchControlFilePath() string
func (*DoltgresConfig) CfgDir ¶ added in v0.7.0
func (cfg *DoltgresConfig) CfgDir() string
func (*DoltgresConfig) ClusterConfig ¶ added in v0.7.0
func (cfg *DoltgresConfig) ClusterConfig() cluster.Config
func (*DoltgresConfig) DataDir ¶ added in v0.7.0
func (cfg *DoltgresConfig) DataDir() string
func (*DoltgresConfig) DisableClientMultiStatements ¶ added in v0.7.0
func (cfg *DoltgresConfig) DisableClientMultiStatements() bool
func (*DoltgresConfig) DoltTransactionCommit ¶ added in v0.7.0
func (cfg *DoltgresConfig) DoltTransactionCommit() bool
func (*DoltgresConfig) EventSchedulerStatus ¶ added in v0.7.0
func (cfg *DoltgresConfig) EventSchedulerStatus() string
func (*DoltgresConfig) Host ¶ added in v0.7.0
func (cfg *DoltgresConfig) Host() string
func (*DoltgresConfig) JwksConfig ¶ added in v0.7.0
func (cfg *DoltgresConfig) JwksConfig() []engine.JwksConfig
func (*DoltgresConfig) LogLevel ¶ added in v0.7.0
func (cfg *DoltgresConfig) LogLevel() sqlserver.LogLevel
func (*DoltgresConfig) MaxConnections ¶ added in v0.7.0
func (cfg *DoltgresConfig) MaxConnections() uint64
func (*DoltgresConfig) MaxLoggedQueryLen ¶ added in v0.7.0
func (cfg *DoltgresConfig) MaxLoggedQueryLen() int
func (*DoltgresConfig) MetricsHost ¶ added in v0.7.0
func (cfg *DoltgresConfig) MetricsHost() string
func (*DoltgresConfig) MetricsLabels ¶ added in v0.7.0
func (cfg *DoltgresConfig) MetricsLabels() map[string]string
func (*DoltgresConfig) MetricsPort ¶ added in v0.7.0
func (cfg *DoltgresConfig) MetricsPort() int
func (*DoltgresConfig) Password ¶ added in v0.7.0
func (cfg *DoltgresConfig) Password() string
func (*DoltgresConfig) PersistenceBehavior ¶ added in v0.7.0
func (cfg *DoltgresConfig) PersistenceBehavior() string
func (*DoltgresConfig) Port ¶ added in v0.7.0
func (cfg *DoltgresConfig) Port() int
func (*DoltgresConfig) PrivilegeFilePath ¶ added in v0.7.0
func (cfg *DoltgresConfig) PrivilegeFilePath() string
func (*DoltgresConfig) QueryParallelism ¶ added in v0.7.0
func (cfg *DoltgresConfig) QueryParallelism() int
func (*DoltgresConfig) ReadOnly ¶ added in v0.7.0
func (cfg *DoltgresConfig) ReadOnly() bool
func (*DoltgresConfig) ReadTimeout ¶ added in v0.7.0
func (cfg *DoltgresConfig) ReadTimeout() uint64
func (*DoltgresConfig) RemotesapiPort ¶ added in v0.7.0
func (cfg *DoltgresConfig) RemotesapiPort() *int
func (*DoltgresConfig) RemotesapiReadOnly ¶ added in v0.7.0
func (cfg *DoltgresConfig) RemotesapiReadOnly() *bool
func (*DoltgresConfig) RequireSecureTransport ¶ added in v0.7.0
func (cfg *DoltgresConfig) RequireSecureTransport() bool
func (*DoltgresConfig) ShouldEncodeLoggedQuery ¶ added in v0.7.0
func (cfg *DoltgresConfig) ShouldEncodeLoggedQuery() bool
func (*DoltgresConfig) Socket ¶ added in v0.7.0
func (cfg *DoltgresConfig) Socket() string
func (*DoltgresConfig) SystemVars ¶ added in v0.7.0
func (cfg *DoltgresConfig) SystemVars() engine.SystemVariables
func (*DoltgresConfig) TLSCert ¶ added in v0.7.0
func (cfg *DoltgresConfig) TLSCert() string
func (*DoltgresConfig) TLSKey ¶ added in v0.7.0
func (cfg *DoltgresConfig) TLSKey() string
func (*DoltgresConfig) ToSqlServerConfig ¶ added in v0.7.0
func (cfg *DoltgresConfig) ToSqlServerConfig() sqlserver.ServerConfig
func (*DoltgresConfig) User ¶ added in v0.7.0
func (cfg *DoltgresConfig) User() string
func (*DoltgresConfig) UserVars ¶ added in v0.7.0
func (cfg *DoltgresConfig) UserVars() []sqlserver.UserSessionVars
func (*DoltgresConfig) ValueSet ¶ added in v0.7.0
func (cfg *DoltgresConfig) ValueSet(value string) bool
func (*DoltgresConfig) WriteTimeout ¶ added in v0.7.0
func (cfg *DoltgresConfig) WriteTimeout() uint64
type DoltgresListenerConfig ¶ added in v0.7.0
type DoltgresListenerConfig struct { HostStr *string `yaml:"host,omitempty" minver:"TBD"` PortNumber *int `yaml:"port,omitempty" minver:"TBD"` ReadTimeoutMillis *uint64 `yaml:"read_timeout_millis,omitempty" minver:"TBD"` WriteTimeoutMillis *uint64 `yaml:"write_timeout_millis,omitempty" minver:"TBD"` // TLSKey is a file system path to an unencrypted private TLS key in PEM format. TLSKey *string `yaml:"tls_key,omitempty" minver:"TBD"` // TLSCert is a file system path to a TLS certificate chain in PEM format. TLSCert *string `yaml:"tls_cert,omitempty" minver:"TBD"` // RequireSecureTransport can enable a mode where non-TLS connections are turned away. RequireSecureTransport *bool `yaml:"require_secure_transport,omitempty" minver:"TBD"` // AllowCleartextPasswords enables use of cleartext passwords. AllowCleartextPasswords *bool `yaml:"allow_cleartext_passwords,omitempty" minver:"TBD"` // Socket is unix socket file path Socket *string `yaml:"socket,omitempty" minver:"TBD"` }
DoltgresListenerConfig contains information on the network connection that the server will open
type DoltgresPerformanceConfig ¶ added in v0.7.0
type DoltgresPerformanceConfig struct {
QueryParallelism *int `yaml:"query_parallelism,omitempty" minver:"TBD"`
}
DoltgresPerformanceConfig contains configuration parameters for performance tweaking
type DoltgresRemotesapiConfig ¶ added in v0.7.0
type DoltgresUserConfig ¶ added in v0.7.0
type DoltgresUserSessionVars ¶ added in v0.7.0
type Listener ¶
type Listener struct {
// contains filtered or unexported fields
}
Listener listens for connections to process PostgreSQL requests into Dolt requests.
type ListenerOpt ¶ added in v0.5.0
type ListenerOpt func(*Listener)
func WithCertificate ¶ added in v0.5.0
func WithCertificate(cert tls.Certificate) ListenerOpt
type PortalData ¶ added in v0.4.0
type PostgresReplicationConfig ¶ added in v0.5.0
type PostgresReplicationConfig struct { PostgresServerAddress *string `yaml:"postgres_server_address,omitempty" minver:"TBD"` PostgresUser *string `yaml:"postgres_user,omitempty" minver:"TBD"` PostgresPassword *string `yaml:"postgres_password,omitempty" minver:"TBD"` PostgresDatabase *string `yaml:"postgres_database,omitempty" minver:"TBD"` PostgresPort *int `yaml:"postgres_port,omitempty" minver:"TBD"` SlotName *string `yaml:"slot_name,omitempty" minver:"TBD"` }
type PreparedStatementData ¶ added in v0.4.0
type PreparedStatementData struct { Query ConvertedQuery ReturnFields []*querypb.Field BindVarTypes []int32 }