1 Star 1 Fork 0

1701 / gpa

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
dialects.go 1.80 KB
一键复制 编辑 原始数据 按行查看 历史
1701 提交于 2021-08-02 16:53 . 修改路径
package dialects
import (
"fmt"
"gitee.com/knowgo/gpa/engine/constants"
"gitee.com/knowgo/gpa/engine/sql/dialects/dialect"
"gitee.com/knowgo/gpa/engine/sql/dialects/impls"
)
var (
drivers = map[constants.DIALECT]dialect.Driver{}
// dialectMap = map[constants.DIALECT]intf.Dialect{}
)
func init() {
impls.RegisterPostgres(register)
}
func register(dialect constants.DIALECT, drv dialect.Driver) {
// dialectMap[name] = d
if drv == nil {
panic("core: Register driver is nil")
}
// drv.Dialect = d
if _, dup := drivers[dialect]; dup {
panic("core: Register called twice for driver " + dialect)
}
drivers[dialect] = drv
}
// func RegisterDialect(name string, dialect Dialect) {
// dialectMap[name] = dialect
// }
// func GetDialect(name types.DRIVER) intf.Dialect {
// return dialectMap[string(name)]
// }
// func RegisterDriver(driverName string, driver Driver) {
// if driver == nil {
// panic("core: Register driver is nil")
// }
// if _, dup := drivers[driverName]; dup {
// panic("core: Register called twice for driver " + driverName)
// }
// drivers[driverName] = driver
// }
// func GetDriver(dialect constants.DIALECT) intf.Driver {
// return drivers[dialect]
// }
// func RegisteredDriverCount() int {
// return len(drivers)
// }
// OpenDialect opens a dialect via driver name and connection string
func OpenDialect(dialect constants.DIALECT, connstr string) (dialect.Dialect, error) {
driver := drivers[dialect] // GetDriver(driverName)
if driver == nil {
return nil, fmt.Errorf("unsupported driver name: %v", dialect)
}
uri, err := driver.Parse(dialect, connstr)
if err != nil {
return nil, err
}
dial := driver.GetDialect() // GetDialect(uri.DRIVER)
if dial == nil {
return nil, fmt.Errorf("unsupported dialect type: %v", uri.DRIVER)
}
dial.Init(uri)
return dial, nil
}
Go
1
https://gitee.com/knowgo/gpa.git
git@gitee.com:knowgo/gpa.git
knowgo
gpa
gpa
v0.2.14

搜索帮助