package sqlfs2
import "database/sql"
type Backend interface {
Initialize(cfg map[string]interface{}) (*sql.DB, error)
GetTableSchema(db *sql.DB, dbName, tableName string) (string, error)
ListDatabases(db *sql.DB) ([]string, error)
ListTables(db *sql.DB, dbName string) ([]string, error)
SwitchDatabase(db *sql.DB, dbName string) error
GetTableColumns(db *sql.DB, dbName, tableName string) ([]ColumnInfo, error)
Name() string
}
type ColumnInfo struct {
Name string
Type string
}
func newBackend(backendType string) Backend {
switch backendType {
case "sqlite", "sqlite3":
return &SQLiteBackend{}
case "mysql":
return &MySQLBackend{}
case "tidb":
return &TiDBBackend{}
default:
return nil
}
}