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 (
"errors"
@ -7,9 +7,9 @@ import (
"github.com/go-xorm/core"
)
func init() {
core.RegisterDriver("goracle", &goracleDriver{})
}
// func init() {
// core.RegisterDriver("goracle", &goracleDriver{})
// }
type goracleDriver struct {
}

View File

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

View File

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

View File

@ -1,4 +1,4 @@
package drivers
package xorm
import (
"errors"
@ -7,16 +7,16 @@ import (
"github.com/go-xorm/core"
)
func init() {
core.RegisterDriver("oci", &ociDriver{})
}
// func init() {
// core.RegisterDriver("oci8", &oci8Driver{})
// }
type ociDriver struct {
type oci8Driver struct {
}
//dataSourceName=user/password@ipv4: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}
dsnPattern := regexp.MustCompile(
`^(?P<user>.*)\/(?P<password>.*)@` + // user:password@

View File

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

View File

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

View File

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

29
xorm.go
View File

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