From 78fb484ce048e4e5e635c8f7aaf494658a4277fc Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 8 Jan 2014 22:47:30 +0800 Subject: [PATCH] bug fixed --- base_test.go | 16 ++++++++++++++-- mysql_test.go | 24 ++++++++++++++++++++++++ statement.go | 8 ++++---- table.go | 7 ++++--- 4 files changed, 46 insertions(+), 9 deletions(-) diff --git a/base_test.go b/base_test.go index 66631160..37532250 100644 --- a/base_test.go +++ b/base_test.go @@ -3175,7 +3175,9 @@ func testPointerData(engine *Engine, t *testing.T) { // using instance type should just work too nullData2Get := NullData2{} - has, err = engine.Table("null_data").Id(nullData.Id).Get(&nullData2Get) + tableName := engine.tableMapper.Obj2Table("NullData") + + has, err = engine.Table(tableName).Id(nullData.Id).Get(&nullData2Get) if err != nil { t.Error(err) panic(err) @@ -3540,7 +3542,9 @@ func testNullValue(engine *Engine, t *testing.T) { // update to null values nullDataUpdate = NullData{} - cnt, err = engine.Id(nullData.Id).Cols("string_ptr").Update(&nullDataUpdate) + string_ptr := engine.columnMapper.Obj2Table("StringPtr") + + cnt, err = engine.Id(nullData.Id).Cols(string_ptr).Update(&nullDataUpdate) if err != nil { t.Error(err) panic(err) @@ -3896,3 +3900,11 @@ func testAll3(engine *Engine, t *testing.T) { fmt.Println("-------------- testStringPK --------------") testStringPK(engine, t) } + +func testAllSnakeMapper(engine *Engine, t *testing.T) { + +} + +func testAllSameMapper(engine *Engine, t *testing.T) { + +} diff --git a/mysql_test.go b/mysql_test.go index 4329af70..e0c3deac 100644 --- a/mysql_test.go +++ b/mysql_test.go @@ -35,6 +35,30 @@ func TestMysql(t *testing.T) { testAll3(engine, t) } +func TestMysqlSameMapper(t *testing.T) { + err := mysqlDdlImport() + if err != nil { + t.Error(err) + return + } + + engine, err := NewEngine("mysql", "root:@/xorm_test3?charset=utf8") + defer engine.Close() + if err != nil { + t.Error(err) + return + } + engine.ShowSQL = showTestSql + engine.ShowErr = showTestSql + engine.ShowWarn = showTestSql + engine.ShowDebug = showTestSql + engine.SetMapper(SameMapper{}) + + testAll(engine, t) + testAll2(engine, t) + testAll3(engine, t) +} + func TestMysqlWithCache(t *testing.T) { err := mysqlDdlImport() if err != nil { diff --git a/statement.go b/statement.go index ab6ecd62..b36a2ebf 100644 --- a/statement.go +++ b/statement.go @@ -510,7 +510,7 @@ func (statement *Statement) Distinct(columns ...string) *Statement { func (statement *Statement) Cols(columns ...string) *Statement { newColumns := col2NewCols(columns...) for _, nc := range newColumns { - statement.columnMap[nc] = true + statement.columnMap[strings.ToLower(nc)] = true } statement.ColumnStr = statement.Engine.Quote(strings.Join(newColumns, statement.Engine.Quote(", "))) return statement @@ -521,7 +521,7 @@ func (statement *Statement) UseBool(columns ...string) *Statement { if len(columns) > 0 { newColumns := col2NewCols(columns...) for _, nc := range newColumns { - statement.boolColumnMap[nc] = true + statement.boolColumnMap[strings.ToLower(nc)] = true } } else { statement.allUseBool = true @@ -533,7 +533,7 @@ func (statement *Statement) UseBool(columns ...string) *Statement { func (statement *Statement) Omit(columns ...string) { newColumns := col2NewCols(columns...) for _, nc := range newColumns { - statement.columnMap[nc] = false + statement.columnMap[strings.ToLower(nc)] = false } statement.OmitStr = statement.Engine.Quote(strings.Join(newColumns, statement.Engine.Quote(", "))) } @@ -586,7 +586,7 @@ func (statement *Statement) genColumnStr() string { colNames := make([]string, 0) for _, col := range table.Columns { if statement.OmitStr != "" { - if _, ok := statement.columnMap[col.Name]; ok { + if _, ok := statement.columnMap[strings.ToLower(col.Name)]; ok { continue } } diff --git a/table.go b/table.go index a1ae7cdc..e63db20e 100644 --- a/table.go +++ b/table.go @@ -411,8 +411,9 @@ func (table *Table) genCols(session *Session, bean interface{}, useCol bool, inc args := make([]interface{}, 0) for _, col := range table.Columns { + lColName := strings.ToLower(col.Name) if useCol && !col.IsVersion && !col.IsCreated && !col.IsUpdated { - if _, ok := session.Statement.columnMap[col.Name]; !ok { + if _, ok := session.Statement.columnMap[lColName]; !ok { continue } } @@ -439,12 +440,12 @@ func (table *Table) genCols(session *Session, bean interface{}, useCol bool, inc } if session.Statement.ColumnStr != "" { - if _, ok := session.Statement.columnMap[col.Name]; !ok { + if _, ok := session.Statement.columnMap[lColName]; !ok { continue } } if session.Statement.OmitStr != "" { - if _, ok := session.Statement.columnMap[col.Name]; ok { + if _, ok := session.Statement.columnMap[lColName]; ok { continue } }