flatten the drivers dir

This commit is contained in:
Nash Tsai 2014-04-14 15:22:01 +08:00
parent cee1c951b5
commit 8814370390
8 changed files with 46 additions and 43 deletions

View File

@ -1,4 +1,4 @@
package drivers package xorm
import ( import (
"errors" "errors"
@ -7,9 +7,9 @@ import (
"github.com/go-xorm/core" "github.com/go-xorm/core"
) )
func init() { // func init() {
core.RegisterDriver("goracle", &goracleDriver{}) // core.RegisterDriver("goracle", &goracleDriver{})
} // }
type goracleDriver struct { type goracleDriver struct {
} }

View File

@ -1,4 +1,4 @@
package drivers package xorm
import ( import (
"errors" "errors"
@ -8,9 +8,9 @@ import (
"github.com/go-xorm/core" "github.com/go-xorm/core"
) )
func init() { // func init() {
core.RegisterDriver("mymysql", &mymysqlDriver{}) // core.RegisterDriver("mymysql", &mymysqlDriver{})
} // }
type mymysqlDriver struct { type mymysqlDriver struct {
} }

View File

@ -1,4 +1,4 @@
package drivers package xorm
import ( import (
"regexp" "regexp"
@ -7,9 +7,9 @@ import (
"github.com/go-xorm/core" "github.com/go-xorm/core"
) )
func init() { // func init() {
core.RegisterDriver("mysql", &mysqlDriver{}) // core.RegisterDriver("mysql", &mysqlDriver{})
} // }
type mysqlDriver struct { type mysqlDriver struct {
} }

View File

@ -1,4 +1,4 @@
package drivers package xorm
import ( import (
"errors" "errors"
@ -7,16 +7,16 @@ import (
"github.com/go-xorm/core" "github.com/go-xorm/core"
) )
func init() { // func init() {
core.RegisterDriver("oci", &ociDriver{}) // core.RegisterDriver("oci8", &oci8Driver{})
} // }
type ociDriver struct { type oci8Driver struct {
} }
//dataSourceName=user/password@ipv4:port/dbname //dataSourceName=user/password@ipv4:port/dbname
//dataSourceName=user/password@[ipv6]:port/dbname //dataSourceName=user/password@[ipv6]:port/dbname
func (p *ociDriver) Parse(driverName, dataSourceName string) (*core.Uri, error) { func (p *oci8Driver) Parse(driverName, dataSourceName string) (*core.Uri, error) {
db := &core.Uri{DbType: core.ORACLE} db := &core.Uri{DbType: core.ORACLE}
dsnPattern := regexp.MustCompile( dsnPattern := regexp.MustCompile(
`^(?P<user>.*)\/(?P<password>.*)@` + // user:password@ `^(?P<user>.*)\/(?P<password>.*)@` + // user:password@

View File

@ -1,4 +1,4 @@
package drivers package xorm
import ( import (
"errors" "errors"
@ -7,9 +7,9 @@ import (
"github.com/go-xorm/core" "github.com/go-xorm/core"
) )
func init() { // func init() {
core.RegisterDriver("odbc", &odbcDriver{}) // core.RegisterDriver("odbc", &odbcDriver{})
} // }
type odbcDriver struct { type odbcDriver struct {
} }

View File

@ -1,4 +1,4 @@
package drivers package xorm
import ( import (
"errors" "errors"
@ -8,9 +8,9 @@ import (
"github.com/go-xorm/core" "github.com/go-xorm/core"
) )
func init() { // func init() {
core.RegisterDriver("postgres", &pqDriver{}) // core.RegisterDriver("postgres", &pqDriver{})
} // }
type pqDriver struct { type pqDriver struct {
} }

View File

@ -1,12 +1,12 @@
package drivers package xorm
import ( import (
"github.com/go-xorm/core" "github.com/go-xorm/core"
) )
func init() { // func init() {
core.RegisterDriver("sqlite3", &sqlite3Driver{}) // core.RegisterDriver("sqlite3", &sqlite3Driver{})
} // }
type sqlite3Driver struct { type sqlite3Driver struct {
} }

29
xorm.go
View File

@ -12,7 +12,6 @@ import (
"github.com/go-xorm/core" "github.com/go-xorm/core"
"github.com/go-xorm/xorm/caches" "github.com/go-xorm/xorm/caches"
_ "github.com/go-xorm/xorm/drivers"
) )
const ( const (
@ -20,22 +19,26 @@ const (
) )
func init() { func init() {
provided_dialects := map[string]struct {
dbType core.DbType providedDrvsNDialects := map[string]struct {
get func() core.Dialect dbType core.DbType
getDriver func() core.Driver
getDialect func() core.Dialect
}{ }{
"odbc": {"mssql", func() core.Dialect { return &mssql{} }}, "odbc": {"mssql", func() core.Driver { return &odbcDriver{} }, func() core.Dialect { return &mssql{} }}, // !nashtsai! TODO change this when supporting MS Access
"mysql": {"mysql", func() core.Dialect { return &mysql{} }}, "mysql": {"mysql", func() core.Driver { return &mysqlDriver{} }, func() core.Dialect { return &mysql{} }},
"mymysql": {"mysql", func() core.Dialect { return &mysql{} }}, "mymysql": {"mysql", func() core.Driver { return &mymysqlDriver{} }, func() core.Dialect { return &mysql{} }},
"oci8": {"oracle", func() core.Dialect { return &oracle{} }}, "postgres": {"postgres", func() core.Driver { return &pqDriver{} }, func() core.Dialect { return &postgres{} }},
"postgres": {"postgres", func() core.Dialect { return &postgres{} }}, "sqlite3": {"sqlite3", func() core.Driver { return &sqlite3Driver{} }, func() core.Dialect { return &sqlite3{} }},
"sqlite3": {"sqlite3", func() core.Dialect { return &sqlite3{} }}, "oci8": {"oracle", func() core.Driver { return &oci8Driver{} }, func() core.Dialect { return &oracle{} }},
"goracle": {"oracle", func() core.Driver { return &goracleDriver{} }, func() core.Dialect { return &oracle{} }},
} }
for k, v := range provided_dialects { for driverName, v := range providedDrvsNDialects {
_, err := sql.Open(string(k), "") _, err := sql.Open(driverName, "")
if err == nil { if err == nil {
core.RegisterDialect(v.dbType, v.get()) core.RegisterDriver(driverName, v.getDriver())
core.RegisterDialect(v.dbType, v.getDialect())
} }
} }
} }