Documentation ¶
Index ¶
- Constants
- func Close() error
- func Execute(sql string, args ...interface{}) (middleware.Result, error)
- func InitClickhouseGlobalPool(addr, dbName, dbUser, dbPass string, debug bool, readTimeout, writeTimeout int, ...) error
- func InitClickhouseGlobalPoolWithConfig(config Config, ...) error
- func InitClickhouseGlobalPoolWithDefault(addr, dbName, dbUser, dbPass string) error
- func InitClickhouseGlobalPoolWithPoolConfig(config PoolConfig) error
- func IsClosed() bool
- func Release(num int) error
- func ReplaceGlobalPool(pool *Pool) error
- func Supply(num int) error
- type Config
- type Conn
- type Pool
- func NewClickhousePool(addr, dbName, dbUser, dbPass string, debug bool, readTimeout, writeTimeout int, ...) (*Pool, error)
- func NewClickhousePoolWithConfig(config Config, ...) (*Pool, error)
- func NewClickhousePoolWithDefault(addr, dbName, dbUser, dbPass string) (*Pool, error)
- func NewClickhousePoolWithPoolConfig(config PoolConfig) (*Pool, error)
- type PoolConfig
- type PoolConn
- type Result
- func (r *Result) ColumnExists(name string) bool
- func (r *Result) ColumnNumber() int
- func (r *Result) GetFloat(row, column int) (float64, error)
- func (r *Result) GetFloatByName(row int, name string) (float64, error)
- func (r *Result) GetFloatSlice(row, column int) ([]float64, error)
- func (r *Result) GetFloatSliceByName(row int, name string) ([]float64, error)
- func (r *Result) GetInt(row, column int) (int64, error)
- func (r *Result) GetIntByName(row int, name string) (int64, error)
- func (r *Result) GetIntSlice(row, column int) ([]int64, error)
- func (r *Result) GetIntSliceByName(row int, name string) ([]int64, error)
- func (r *Result) GetSlice(row, column int) ([]interface{}, error)
- func (r *Result) GetSliceByName(row int, name string) ([]interface{}, error)
- func (r *Result) GetString(row, column int) (string, error)
- func (r *Result) GetStringByName(row int, name string) (string, error)
- func (r *Result) GetStringSlice(row, column int) ([]string, error)
- func (r *Result) GetStringSliceByName(row int, name string) ([]string, error)
- func (r *Result) GetUint(row, column int) (uint64, error)
- func (r *Result) GetUintByName(row int, name string) (uint64, error)
- func (r *Result) GetUintSlice(row, column int) ([]uint64, error)
- func (r *Result) GetUintSliceByName(row int, name string) ([]uint64, error)
- func (r *Result) GetValue(row, column int) (interface{}, error)
- func (r *Result) GetValueByName(row int, name string) (interface{}, error)
- func (r *Result) IsNull(row, column int) (bool, error)
- func (r *Result) IsNullByName(row int, name string) (bool, error)
- func (r *Result) LastInsertID() (uint64, error)
- func (r *Result) MapToStructByRowIndex(in interface{}, row int, tag string) error
- func (r *Result) MapToStructSlice(in interface{}, tag string) error
- func (r *Result) NameIndex(name string) (int, error)
- func (r *Result) RowNumber() int
- func (r *Result) RowsAffected() (uint64, error)
Constants ¶
const ( DefaultDatabase = "default" DefaultReadTimeout = 10 DefaultWriteTimeout = 10 )
const ( DefaultMaxConnections = 20 DefaultInitConnections = 5 DefaultMaxIdleConnections = 10 DefaultMaxIdleTime = 1800 // seconds DefaultKeepAliveInterval = 300 // seconds DefaultKeepAliveChunkSize = 5 DefaultSleepTime = 1 // seconds )
Variables ¶
This section is empty.
Functions ¶
func Execute ¶
func Execute(sql string, args ...interface{}) (middleware.Result, error)
Execute execute given sql statement
func InitClickhouseGlobalPool ¶
func InitClickhouseGlobalPool(addr, dbName, dbUser, dbPass string, debug bool, readTimeout, writeTimeout int, maxConnections, initConnections, maxIdleConnections, maxIdleTime, keepAliveInterval int, altHosts ...string) error
InitClickhouseGlobalPool returns a new *Pool and replaces it as global pool
func InitClickhouseGlobalPoolWithConfig ¶
func InitClickhouseGlobalPoolWithConfig(config Config, maxConnections, initConnections, maxIdleConnections, maxIdleTime, keepAliveInterval int) error
InitClickhouseGlobalPoolWithConfig returns a new *Pool with a Config object and replaces it as global pool
func InitClickhouseGlobalPoolWithDefault ¶
InitClickhouseGlobalPoolWithDefault returns a new *Pool with default configuration and replaces it as global pool
func InitClickhouseGlobalPoolWithPoolConfig ¶
func InitClickhouseGlobalPoolWithPoolConfig(config PoolConfig) error
InitClickhouseGlobalPoolWithPoolConfig returns a new *Pool with a PoolConfig object and replaces it as global pool
func Release ¶
Release releases given number of connections of global pool, each connection will disconnect with database
func ReplaceGlobalPool ¶
ReplaceGlobalPool replaces given pool as global pool
Types ¶
type Config ¶
type Config struct { Addr string DBName string DBUser string DBPass string Debug bool ReadTimeout int WriteTimeout int AltHosts []string }
func NewClickhouseConfig ¶
func NewClickhouseConfig(addr, dbName, dbUser, dbPass string, debug bool, readTimeout, writeTimeout int, altHosts ...string) Config
NewClickhouseConfig returns a new Config
func NewClickhouseConfigWithDefault ¶
NewClickhouseConfig returns a new Config with default value
func (*Config) AltHostsExist ¶
AltHostExists checks if alternative hosts is empty
func (*Config) AltHostsString ¶
AltHostsString converts AltHosts to string
func (*Config) GetConnectionString ¶
GetConnectString generates connection string to clickhouse
type Conn ¶
type Conn struct { Config clickhouse.Clickhouse }
func NewClickhouseConn ¶
func NewClickhouseConn(addr, dbName, dbUser, dbPass string, debug bool, readTimeout, writeTimeout int, altHosts ...string) (*Conn, error)
NewClickhouseConn returns connection to Clickhouse database, be aware that addr is host:port style
func NewClickhouseConnWithConfig ¶
NewMySQLConn returns connection to mysql database with given Config
func (*Conn) CheckInstanceStatus ¶
type Pool ¶
type Pool struct { sync.Mutex PoolConfig // contains filtered or unexported fields }
func NewClickhousePool ¶
func NewClickhousePool(addr, dbName, dbUser, dbPass string, debug bool, readTimeout, writeTimeout int, maxConnections, initConnections, maxIdleConnections, maxIdleTime, keepAliveInterval int, altHosts ...string) (*Pool, error)
NewClickhousePool returns a new *Pool
func NewClickhousePoolWithConfig ¶
func NewClickhousePoolWithConfig(config Config, maxConnections, initConnections, maxIdleConnections, maxIdleTime, keepAliveInterval int) (*Pool, error)
NewClickhousePoolWithConfig returns a new *Pool with a Config object
func NewClickhousePoolWithDefault ¶
NewClickhousePoolWithDefault returns a new *Pool with default configuration
func NewClickhousePoolWithPoolConfig ¶
func NewClickhousePoolWithPoolConfig(config PoolConfig) (*Pool, error)
NewClickhousePoolWithPoolConfig returns a new *Pool with a PoolConfig object
func (*Pool) Get ¶
func (p *Pool) Get() (middleware.PoolConn, error)
Get is an exported alias of get() function with routine safe
func (*Pool) Transaction ¶
func (p *Pool) Transaction() (middleware.Transaction, error)
Transaction simply returns *PoolConn, because it had implemented Transaction interface
func (*Pool) UsedConnections ¶
UsedConnections returns used connection number
type PoolConfig ¶
type PoolConfig struct { Config MaxConnections int InitConnections int MaxIdleConnections int MaxIdleTime int KeepAliveInterval int }
func NewPoolConfig ¶
func NewPoolConfig(addr, dbName, dbUser, dbPass string, debug bool, readTimeout, writeTimeout int, maxConnections, initConnections, maxIdleConnections, maxIdleTime, keepAliveInterval int, altHosts ...string) PoolConfig
NewPoolConfig returns a new PoolConfig
func NewPoolConfigWithConfig ¶
func NewPoolConfigWithConfig(config Config, maxConnections, initConnections, maxIdleConnections, maxIdleTime, keepAliveInterval int) PoolConfig
NewPoolConfigWithConfig returns a new PoolConfig
func (*PoolConfig) Validate ¶
func (cfg *PoolConfig) Validate() (bool, error)
Validate validates pool config
type PoolConn ¶
func Get ¶
Get get gets a connection from pool and validate it, if there is no valid connection in the pool, it will create a new connection
func NewPoolConn ¶
func NewPoolConn(addr, dbName, dbUser, dbPass string, debug bool, readTimeout, writeTimeout int, alterHosts ...string) (*PoolConn, error)
NewPoolConn returns a new *PoolConn
func NewPoolConnWithPool ¶
func NewPoolConnWithPool(pool *Pool, addr, dbName, dbUser, dbPass string, debug bool, readTimeout, writeTimeout int, alterHosts ...string) (*PoolConn, error)
NewPoolConnWithPool returns a new *PoolConn
func (*PoolConn) Disconnect ¶ added in v0.2.24
DisConnect disconnects from mysql, normally when using connection pool, there is no need to disconnect manually, consider to use Close() instead.
type Result ¶
type Result struct { middleware.MapResult FieldSlice []string FieldMap map[string]int Values [][]driver.Value }
func (*Result) ColumnExists ¶
ColumnExists check if column exists in the result
func (*Result) ColumnNumber ¶
ColumnNumber returns how many columns in the result
func (*Result) GetFloatByName ¶
GetFloatByName returns float64 type value of given row number and column name
func (*Result) GetFloatSlice ¶
GetFloatSlice returns []float64 type value of given row and column number
func (*Result) GetFloatSliceByName ¶
GetFloatSliceByName returns []float64 type value of given row number and column name
func (*Result) GetIntByName ¶
GetIntByName returns int64 type value of given row number and column name
func (*Result) GetIntSlice ¶
GetIntSlice returns []uint64 type value of given row and column number
func (*Result) GetIntSliceByName ¶
GetIntSliceByName returns []int64 type value of given row number and column name
func (*Result) GetSliceByName ¶
GetStringByName returns []interface type value of given row number and column name
func (*Result) GetStringByName ¶
GetStringByName returns string type value of given row number and column name
func (*Result) GetStringSlice ¶
GetStringSlice returns []string type value of given row and column number
func (*Result) GetStringSliceByName ¶
GetStringSliceByName returns []string type value of given row number and column name
func (*Result) GetUintByName ¶
GetUintByName returns uint64 type value of given row number and column name
func (*Result) GetUintSlice ¶
GetUintSlice returns []uint64 type value of given row and column number
func (*Result) GetUintSliceByName ¶
GetUintSliceByName returns []uint64 type value of given row number and column name
func (*Result) GetValueByName ¶
GetValueByName returns interface{} type value of given row number and column name
func (*Result) IsNullByName ¶
IsNullByName checks if value of given row number and column name is nil
func (*Result) LastInsertID ¶
LastInsertID always returns error, because clickhouse does not support this, this function is only for implementing the middleware.Result interface
func (*Result) MapToStructByRowIndex ¶
MapToStructByRowIndex maps row of given index result to the struct first argument must be a pointer to struct, each column in the row maps to a field of the struct, tag argument is the tag of the field, it represents the column name, if there is no such tag in the field, this field will be ignored, so set tag to each field that need to be mapped, using "middleware" as the tag is recommended.
func (*Result) MapToStructSlice ¶
MapToStructSlice maps each row to a struct of the first argument, first argument must be a slice of pointers to structs, each row in the result maps to a struct in the slice, each column in the row maps to a field of the struct, tag argument is the tag of the field, it represents the column name, if there is no such tag in the field, this field will be ignored, so set tag to each field that need to be mapped, using "middleware" as the tag is recommended.
func (*Result) RowsAffected ¶
LastInsertID always returns error, because clickhouse does not support this, this function is only for implementing the middleware.Result interface