diff --git a/engine.go b/engine.go index 0f4caacf..33595aa9 100644 --- a/engine.go +++ b/engine.go @@ -457,7 +457,9 @@ func (engine *Engine) mapType(v reflect.Value) *core.Table { table := engine.newTable() method := v.MethodByName("TableName") if !method.IsValid() { - method = v.Addr().MethodByName("TableName") + if v.CanAddr() { + method = v.Addr().MethodByName("TableName") + } } if method.IsValid() { params := []reflect.Value{} diff --git a/statement.go b/statement.go index 436087c1..fa82ff83 100644 --- a/statement.go +++ b/statement.go @@ -539,6 +539,9 @@ func (statement *Statement) Cols(columns ...string) *Statement { statement.columnMap[strings.ToLower(nc)] = true } statement.ColumnStr = statement.Engine.Quote(strings.Join(newColumns, statement.Engine.Quote(", "))) + if strings.Contains(statement.ColumnStr, ".") { + statement.ColumnStr = strings.Replace(statement.ColumnStr, ".", statement.Engine.Quote("."), -1) + } return statement }