Versions in this module Expand all Collapse all v0 v0.2.30 Jan 28, 2022 v0.2.29 Jan 28, 2022 v0.2.28 Jan 21, 2022 v0.2.27 Jan 21, 2022 v0.2.26 Jan 21, 2022 Changes in this version + func Coalesce(str ...string) string v0.2.25 Jan 21, 2022 v0.2.24 Jan 21, 2022 v0.2.23 Jan 21, 2022 Changes in this version + const DefaultMaxIdleConns + const DefaultMaxOpenConns + var ErrNotImplementation error = errors.New("not implementation") + func ColumnDoc(tableName string, colDesc *ColumnDesc) string + func Columns(rows *sql.Rows) ([]string, error) + func QueryExecType(prefix, sqlstr string) (string, bool) + func RegisterFactory(name dialect.DatabaseDriver, factory Factory) + func RegisterOpen(name dialect.DatabaseDriver, opener Opener) + func Registered(name dialect.DatabaseDriver) bool + func ScanRows(rows *sql.Rows, columnLength int) ([][]string, error) + func SubqueryColumnDoc(identName string, views []*parseutil.SubQueryView, dbCache *DBCache) string + func SubqueryDoc(name string, views []*parseutil.SubQueryView, dbCache *DBCache) string + func TableDoc(tableName string, cols []*ColumnDesc) string + type ColumnDesc struct + Default sql.NullString + Extra string + Key string + Name string + Null string + Schema string + Table string + Type string + func (cd *ColumnDesc) OnelineDesc() string + func (cd *ColumnDesc) OnelineDescWithName() string + type DBCache struct + ColumnsWithParent map[string][]*ColumnDesc + SchemaTables map[string][]string + Schemas map[string]string + func (dc *DBCache) Column(tableName, colName string) (*ColumnDesc, bool) + func (dc *DBCache) ColumnDatabase(dbName, tableName string) (cols []*ColumnDesc, ok bool) + func (dc *DBCache) ColumnDescs(tableName string) (cols []*ColumnDesc, ok bool) + func (dc *DBCache) Database(dbName string) (db string, ok bool) + func (dc *DBCache) SortedSchemas() []string + func (dc *DBCache) SortedTables() []string + func (dc *DBCache) SortedTablesByDBName(dbName string) (tbls []string, ok bool) + type DBCacheGenerator struct + func NewDBCacheUpdater(repo DBRepository) *DBCacheGenerator + func (u *DBCacheGenerator) GenerateDBCachePrimary(ctx context.Context) (*DBCache, error) + func (u *DBCacheGenerator) GenerateDBCacheSecondary(ctx context.Context) (map[string][]*ColumnDesc, error) + type DBConfig struct + Alias string + DBName string + DataSourceName string + Driver dialect.DatabaseDriver + Host string + Params map[string]string + Passwd string + Path string + Port int + Proto Proto + SSHCfg *SSHConfig + User string + func (c *DBConfig) Validate() error + type DBConnection struct + Conn *sql.DB + Driver dialect.DatabaseDriver + SSHConn *ssh.Client + func Open(cfg *DBConfig) (*DBConnection, error) + func (db *DBConnection) Close() error + type DBOption struct + MaxIdleConns int + MaxOpenConns int + type DBRepository interface + CurrentDatabase func(ctx context.Context) (string, error) + CurrentSchema func(ctx context.Context) (string, error) + Databases func(ctx context.Context) ([]string, error) + DescribeDatabaseTable func(ctx context.Context) ([]*ColumnDesc, error) + DescribeDatabaseTableBySchema func(ctx context.Context, schemaName string) ([]*ColumnDesc, error) + Driver func() dialect.DatabaseDriver + Exec func(ctx context.Context, query string) (sql.Result, error) + Query func(ctx context.Context, query string) (*sql.Rows, error) + SchemaTables func(ctx context.Context) (map[string][]string, error) + Schemas func(ctx context.Context) ([]string, error) + func CreateRepository(driver dialect.DatabaseDriver, db *sql.DB) (DBRepository, error) + func NewH2DBRepository(conn *sql.DB) DBRepository + func NewMockDBRepository(conn *sql.DB) DBRepository + func NewMssqlDBRepository(conn *sql.DB) DBRepository + func NewMySQLDBRepository(conn *sql.DB) DBRepository + func NewOracleDBRepository(conn *sql.DB) DBRepository + func NewPostgreSQLDBRepository(conn *sql.DB) DBRepository + func NewSQLite3DBRepository(conn *sql.DB) DBRepository + type Factory func(*sql.DB) DBRepository + type H2DBRepository struct + Conn *sql.DB + func (db *H2DBRepository) CurrentDatabase(ctx context.Context) (string, error) + func (db *H2DBRepository) CurrentSchema(ctx context.Context) (string, error) + func (db *H2DBRepository) Databases(ctx context.Context) ([]string, error) + func (db *H2DBRepository) DescribeDatabaseTable(ctx context.Context) ([]*ColumnDesc, error) + func (db *H2DBRepository) DescribeDatabaseTableBySchema(ctx context.Context, schemaName string) ([]*ColumnDesc, error) + func (db *H2DBRepository) Driver() dialect.DatabaseDriver + func (db *H2DBRepository) Exec(ctx context.Context, query string) (sql.Result, error) + func (db *H2DBRepository) Query(ctx context.Context, query string) (*sql.Rows, error) + func (db *H2DBRepository) SchemaTables(ctx context.Context) (map[string][]string, error) + func (db *H2DBRepository) Schemas(ctx context.Context) ([]string, error) + func (db *H2DBRepository) Tables(ctx context.Context) ([]string, error) + type MockDBRepository struct + MockDatabase func(context.Context) (string, error) + MockDatabaseTables func(context.Context) (map[string][]string, error) + MockDatabases func(context.Context) ([]string, error) + MockDescribeDatabaseTable func(context.Context) ([]*ColumnDesc, error) + MockDescribeDatabaseTableBySchema func(context.Context, string) ([]*ColumnDesc, error) + MockDescribeTable func(context.Context, string) ([]*ColumnDesc, error) + MockExec func(context.Context, string) (sql.Result, error) + MockQuery func(context.Context, string) (*sql.Rows, error) + MockTables func(context.Context) ([]string, error) + func (m *MockDBRepository) CurrentDatabase(ctx context.Context) (string, error) + func (m *MockDBRepository) CurrentSchema(ctx context.Context) (string, error) + func (m *MockDBRepository) Databases(ctx context.Context) ([]string, error) + func (m *MockDBRepository) DescribeDatabaseTable(ctx context.Context) ([]*ColumnDesc, error) + func (m *MockDBRepository) DescribeDatabaseTableBySchema(ctx context.Context, schemaName string) ([]*ColumnDesc, error) + func (m *MockDBRepository) Driver() dialect.DatabaseDriver + func (m *MockDBRepository) Exec(ctx context.Context, query string) (sql.Result, error) + func (m *MockDBRepository) Query(ctx context.Context, query string) (*sql.Rows, error) + func (m *MockDBRepository) SchemaTables(ctx context.Context) (map[string][]string, error) + func (m *MockDBRepository) Schemas(ctx context.Context) ([]string, error) + func (m *MockDBRepository) Tables(ctx context.Context) ([]string, error) + type MockResult struct + MockLastInsertID func() (int64, error) + MockRowsAffected func() (int64, error) + func (m *MockResult) LastInsertId() (int64, error) + func (m *MockResult) RowsAffected() (int64, error) + type MssqlDBRepository struct + Conn *sql.DB + func (db *MssqlDBRepository) CurrentDatabase(ctx context.Context) (string, error) + func (db *MssqlDBRepository) CurrentSchema(ctx context.Context) (string, error) + func (db *MssqlDBRepository) Databases(ctx context.Context) ([]string, error) + func (db *MssqlDBRepository) DescribeDatabaseTable(ctx context.Context) ([]*ColumnDesc, error) + func (db *MssqlDBRepository) DescribeDatabaseTableBySchema(ctx context.Context, schemaName string) ([]*ColumnDesc, error) + func (db *MssqlDBRepository) Driver() dialect.DatabaseDriver + func (db *MssqlDBRepository) Exec(ctx context.Context, query string) (sql.Result, error) + func (db *MssqlDBRepository) Query(ctx context.Context, query string) (*sql.Rows, error) + func (db *MssqlDBRepository) SchemaTables(ctx context.Context) (map[string][]string, error) + func (db *MssqlDBRepository) Schemas(ctx context.Context) ([]string, error) + func (db *MssqlDBRepository) Tables(ctx context.Context) ([]string, error) + type MySQLDBRepository struct + Conn *sql.DB + func (db *MySQLDBRepository) CurrentDatabase(ctx context.Context) (string, error) + func (db *MySQLDBRepository) CurrentSchema(ctx context.Context) (string, error) + func (db *MySQLDBRepository) Databases(ctx context.Context) ([]string, error) + func (db *MySQLDBRepository) DescribeDatabaseTable(ctx context.Context) ([]*ColumnDesc, error) + func (db *MySQLDBRepository) DescribeDatabaseTableBySchema(ctx context.Context, schemaName string) ([]*ColumnDesc, error) + func (db *MySQLDBRepository) Driver() dialect.DatabaseDriver + func (db *MySQLDBRepository) Exec(ctx context.Context, query string) (sql.Result, error) + func (db *MySQLDBRepository) Query(ctx context.Context, query string) (*sql.Rows, error) + func (db *MySQLDBRepository) SchemaTables(ctx context.Context) (map[string][]string, error) + func (db *MySQLDBRepository) Schemas(ctx context.Context) ([]string, error) + func (db *MySQLDBRepository) Tables(ctx context.Context) ([]string, error) + type MySQLViaSSHDialer struct + func (d *MySQLViaSSHDialer) Dial(ctx context.Context, addr string) (net.Conn, error) + type Opener func(*DBConfig) (*DBConnection, error) + type OracleDBRepository struct + Conn *sql.DB + func (db *OracleDBRepository) CurrentDatabase(ctx context.Context) (string, error) + func (db *OracleDBRepository) CurrentSchema(ctx context.Context) (string, error) + func (db *OracleDBRepository) Databases(ctx context.Context) ([]string, error) + func (db *OracleDBRepository) DescribeDatabaseTable(ctx context.Context) ([]*ColumnDesc, error) + func (db *OracleDBRepository) DescribeDatabaseTableBySchema(ctx context.Context, schemaName string) ([]*ColumnDesc, error) + func (db *OracleDBRepository) Driver() dialect.DatabaseDriver + func (db *OracleDBRepository) Exec(ctx context.Context, query string) (sql.Result, error) + func (db *OracleDBRepository) Query(ctx context.Context, query string) (*sql.Rows, error) + func (db *OracleDBRepository) SchemaTables(ctx context.Context) (map[string][]string, error) + func (db *OracleDBRepository) Schemas(ctx context.Context) ([]string, error) + func (db *OracleDBRepository) Tables(ctx context.Context) ([]string, error) + type PostgreSQLDBRepository struct + Conn *sql.DB + func (db *PostgreSQLDBRepository) CurrentDatabase(ctx context.Context) (string, error) + func (db *PostgreSQLDBRepository) CurrentSchema(ctx context.Context) (string, error) + func (db *PostgreSQLDBRepository) Databases(ctx context.Context) ([]string, error) + func (db *PostgreSQLDBRepository) DescribeDatabaseTable(ctx context.Context) ([]*ColumnDesc, error) + func (db *PostgreSQLDBRepository) DescribeDatabaseTableBySchema(ctx context.Context, schemaName string) ([]*ColumnDesc, error) + func (db *PostgreSQLDBRepository) Driver() dialect.DatabaseDriver + func (db *PostgreSQLDBRepository) Exec(ctx context.Context, query string) (sql.Result, error) + func (db *PostgreSQLDBRepository) Query(ctx context.Context, query string) (*sql.Rows, error) + func (db *PostgreSQLDBRepository) SchemaTables(ctx context.Context) (map[string][]string, error) + func (db *PostgreSQLDBRepository) Schemas(ctx context.Context) ([]string, error) + func (db *PostgreSQLDBRepository) Tables(ctx context.Context) ([]string, error) + type Proto string + const ProtoTCP + const ProtoUDP + const ProtoUnix + type SQLite3DBRepository struct + Conn *sql.DB + func (db *SQLite3DBRepository) CurrentDatabase(ctx context.Context) (string, error) + func (db *SQLite3DBRepository) CurrentSchema(ctx context.Context) (string, error) + func (db *SQLite3DBRepository) Databases(ctx context.Context) ([]string, error) + func (db *SQLite3DBRepository) DescribeDatabaseTable(ctx context.Context) ([]*ColumnDesc, error) + func (db *SQLite3DBRepository) DescribeDatabaseTableBySchema(ctx context.Context, schemaName string) ([]*ColumnDesc, error) + func (db *SQLite3DBRepository) Driver() dialect.DatabaseDriver + func (db *SQLite3DBRepository) Exec(ctx context.Context, query string) (sql.Result, error) + func (db *SQLite3DBRepository) Query(ctx context.Context, query string) (*sql.Rows, error) + func (db *SQLite3DBRepository) SchemaTables(ctx context.Context) (map[string][]string, error) + func (db *SQLite3DBRepository) Schemas(ctx context.Context) ([]string, error) + func (db *SQLite3DBRepository) Tables(ctx context.Context) ([]string, error) + type SSHConfig struct + Host string + PassPhrase string + Port int + PrivateKey string + User string + func (c *SSHConfig) Validate() error + func (s *SSHConfig) ClientConfig() (*ssh.ClientConfig, error) + func (s *SSHConfig) Endpoint() string + type Worker struct + func NewWorker() *Worker + func (w *Worker) Cache() *DBCache + func (w *Worker) ReCache(ctx context.Context, repo DBRepository) error + func (w *Worker) Start() + func (w *Worker) Stop()