From 96309f04a3109ecdcb57445bf97404c647e8fe63 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 21 Jul 2021 11:12:52 +0800 Subject: [PATCH] Fix build --- dialects/db2.go | 48 ++++++++++++++++++++++++++++++++++++++++++++- dialects/dialect.go | 15 +------------- 2 files changed, 48 insertions(+), 15 deletions(-) diff --git a/dialects/db2.go b/dialects/db2.go index 1b2f0038..7b420e51 100644 --- a/dialects/db2.go +++ b/dialects/db2.go @@ -6,6 +6,7 @@ package dialects import ( "context" + "database/sql" "errors" "fmt" "strconv" @@ -33,6 +34,23 @@ func (db *db2) Init(uri *URI) error { return db.Base.Init(db, uri) } +func (db *db2) Version(context.Context, core.Queryer) (*schemas.Version, error) { + return nil, fmt.Errorf("not implementation") +} + +func (db *db2) ColumnTypeKind(t string) int { + switch strings.ToUpper(t) { + case "DATE", "DATETIME", "DATETIME2", "TIME": + return schemas.TIME_TYPE + case "VARCHAR", "TEXT", "CHAR", "NVARCHAR", "NCHAR", "NTEXT": + return schemas.TEXT_TYPE + case "FLOAT", "REAL", "BIGINT", "DATETIMEOFFSET", "TINYINT", "SMALLINT", "INT": + return schemas.NUMERIC_TYPE + default: + return schemas.UNKNOW_TYPE + } +} + func (db *db2) SQLType(c *schemas.Column) string { var res string switch t := c.SQLType.Name; t { @@ -412,7 +430,35 @@ func (db *db2) Filters() []Filter { return []Filter{} } -type db2Driver struct{} +type db2Driver struct { + baseDriver +} + +func (p *db2Driver) Features() *DriverFeatures { + return &DriverFeatures{ + SupportReturnInsertedID: false, + } +} + +func (g *db2Driver) GenScanResult(colType string) (interface{}, error) { + switch colType { + case "CHAR", "NCHAR", "VARCHAR", "VARCHAR2", "NVARCHAR2", "LONG", "CLOB", "NCLOB": + var s sql.NullString + return &s, nil + case "NUMBER": + var s sql.NullString + return &s, nil + case "DATE": + var s sql.NullTime + return &s, nil + case "BLOB": + var r sql.RawBytes + return &r, nil + default: + var r sql.RawBytes + return &r, nil + } +} func (p *db2Driver) Parse(driverName, dataSourceName string) (*URI, error) { var dbName string diff --git a/dialects/dialect.go b/dialects/dialect.go index d844aed9..5d65b1f6 100644 --- a/dialects/dialect.go +++ b/dialects/dialect.go @@ -211,18 +211,6 @@ func regDrvsNDialects() bool { getDriver func() Driver getDialect func() Dialect }{ -<<<<<<< HEAD - "mssql": {"mssql", func() Driver { return &odbcDriver{} }, func() Dialect { return &mssql{} }}, - "odbc": {"mssql", func() Driver { return &odbcDriver{} }, func() Dialect { return &mssql{} }}, // !nashtsai! TODO change this when supporting MS Access - "mysql": {"mysql", func() Driver { return &mysqlDriver{} }, func() Dialect { return &mysql{} }}, - "mymysql": {"mysql", func() Driver { return &mymysqlDriver{} }, func() Dialect { return &mysql{} }}, - "postgres": {"postgres", func() Driver { return &pqDriver{} }, func() Dialect { return &postgres{} }}, - "pgx": {"postgres", func() Driver { return &pqDriverPgx{} }, func() Dialect { return &postgres{} }}, - "sqlite3": {"sqlite3", func() Driver { return &sqlite3Driver{} }, func() Dialect { return &sqlite3{} }}, - "sqlite": {"sqlite3", func() Driver { return &sqlite3Driver{} }, func() Dialect { return &sqlite3{} }}, - "oci8": {"oracle", func() Driver { return &oci8Driver{} }, func() Dialect { return &oracle{} }}, - "godror": {"oracle", func() Driver { return &godrorDriver{} }, func() Dialect { return &oracle{} }}, -======= "mssql": {"mssql", func() Driver { return &odbcDriver{} }, func() Dialect { return &mssql{} }}, "odbc": {"mssql", func() Driver { return &odbcDriver{} }, func() Dialect { return &mssql{} }}, // !nashtsai! TODO change this when supporting MS Access "mysql": {"mysql", func() Driver { return &mysqlDriver{} }, func() Dialect { return &mysql{} }}, @@ -232,9 +220,8 @@ func regDrvsNDialects() bool { "sqlite3": {"sqlite3", func() Driver { return &sqlite3Driver{} }, func() Dialect { return &sqlite3{} }}, "sqlite": {"sqlite3", func() Driver { return &sqlite3Driver{} }, func() Dialect { return &sqlite3{} }}, "oci8": {"oracle", func() Driver { return &oci8Driver{} }, func() Dialect { return &oracle{} }}, - "goracle": {"oracle", func() Driver { return &goracleDriver{} }, func() Dialect { return &oracle{} }}, + "godror": {"oracle", func() Driver { return &godrorDriver{} }, func() Dialect { return &oracle{} }}, "go_ibm_db": {"db2", func() Driver { return &db2Driver{} }, func() Dialect { return &db2{} }}, ->>>>>>> 538a3b2 (Use new dialect interface) } for driverName, v := range providedDrvsNDialects {