diff --git a/VERSION b/VERSION index 0976f6e1..cd346308 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -xorm v0.5.5.0711 +xorm v0.5.5.0728 diff --git a/session.go b/session.go index 35e7a306..ded16fab 100644 --- a/session.go +++ b/session.go @@ -1291,9 +1291,9 @@ func (session *Session) Find(rowsSlicePtr interface{}, condiBean ...interface{}) } } - session.Statement.Params = append(session.Statement.joinArgs, append(session.Statement.Params, session.Statement.BeanArgs...)...) - session.Statement.attachInSql() + session.Statement.Params = append(append(append(session.Statement.joinArgs, session.Statement.Params...), + session.Statement.BeanArgs...), session.Statement.inParams...) sqlStr = session.Statement.genSelectSQL(columnStr) args = session.Statement.Params @@ -1874,7 +1874,6 @@ func (session *Session) _row2Bean(rows *core.Rows, fields []string, fieldsCount // !! 增加支持sql.Scanner接口的结构,如sql.NullString hasAssigned = true if err := nulVal.Scan(vv.Interface()); err != nil { - //fmt.Println("sql.Sanner error:", err.Error()) session.Engine.logger.Error("sql.Sanner error:", err.Error()) hasAssigned = false } @@ -2469,13 +2468,11 @@ func (session *Session) str2Time(col *core.Column, data string) (outTime time.Ti if err == nil { x = time.Unix(sd, 0) // !nashtsai! HACK mymysql driver is casuing Local location being change to CHAT and cause wrong time conversion - //fmt.Println(x.In(session.Engine.TZLocation), "===") if col.TimeZone == nil { x = x.In(session.Engine.TZLocation) } else { x = x.In(col.TimeZone) } - //fmt.Println(x, "=====") session.Engine.logger.Debugf("time(0) key[%v]: %+v | sdata: [%v]\n", col.FieldName, x, sdata) } else { session.Engine.logger.Debugf("time(0) err key[%v]: %+v | sdata: [%v]\n", col.FieldName, x, sdata) diff --git a/statement.go b/statement.go index b8b0c1b4..05d0e3a3 100644 --- a/statement.go +++ b/statement.go @@ -46,6 +46,7 @@ type Statement struct { WhereStr string IdParam *core.PK Params []interface{} + inParams []interface{} OrderStr string JoinStr string joinArgs []interface{} @@ -90,6 +91,7 @@ func (statement *Statement) Init() { statement.LimitN = 0 statement.WhereStr = "" statement.Params = make([]interface{}, 0) + statement.inParams = make([]interface{}, 0) statement.OrderStr = "" statement.UseCascade = true statement.JoinStr = "" @@ -432,7 +434,6 @@ func buildUpdates(engine *Engine, table *core.Table, bean interface{}, } APPEND: - //fmt.Println("==", col.Name, "==", fmt.Sprintf("%v", val)) args = append(args, val) if col.IsPrimaryKey && engine.dialect.DBType() == "ql" { continue @@ -821,7 +822,7 @@ func (statement *Statement) attachInSql() { statement.ConditionStr += " " + statement.Engine.dialect.AndStr() + " " } statement.ConditionStr += inSql - statement.Params = append(statement.Params, inArgs...) + statement.inParams = inArgs } } @@ -873,7 +874,6 @@ func (statement *Statement) Cols(columns ...string) *Statement { } newColumns := statement.col2NewColsWithQuote(columns...) - //fmt.Println("=====", columns, newColumns, cols) statement.ColumnStr = strings.Join(newColumns, ", ") statement.ColumnStr = strings.Replace(statement.ColumnStr, statement.Engine.quote("*"), "*", -1) return statement @@ -1166,7 +1166,8 @@ func (statement *Statement) genGetSql(bean interface{}) (string, []interface{}) } statement.attachInSql() // !admpub! fix bug:Iterate func missing "... IN (...)" - return statement.genSelectSQL(columnStr), append(append(statement.joinArgs, statement.Params...), statement.BeanArgs...) + return statement.genSelectSQL(columnStr), append(append(append(statement.joinArgs, statement.Params...), + statement.BeanArgs...), statement.inParams...) } func (s *Statement) genAddColumnStr(col *core.Column) (string, []interface{}) { @@ -1176,20 +1177,6 @@ func (s *Statement) genAddColumnStr(col *core.Column) (string, []interface{}) { return sql, []interface{}{} } -/*func (s *Statement) genAddIndexStr(idxName string, cols []string) (string, []interface{}) { - quote := s.Engine.Quote - colstr := quote(strings.Join(cols, quote(", "))) - sql := fmt.Sprintf("CREATE INDEX %v ON %v (%v);", quote(idxName), quote(s.TableName()), colstr) - return sql, []interface{}{} -} - -func (s *Statement) genAddUniqueStr(uqeName string, cols []string) (string, []interface{}) { - quote := s.Engine.Quote - colstr := quote(strings.Join(cols, quote(", "))) - sql := fmt.Sprintf("CREATE UNIQUE INDEX %v ON %v (%v);", quote(uqeName), quote(s.TableName()), colstr) - return sql, []interface{}{} -}*/ - func (statement *Statement) buildConditions(table *core.Table, bean interface{}, includeVersion bool, includeUpdated bool, includeNil bool, includeAutoIncr bool, addedTableName bool) ([]string, []interface{}) { return buildConditions(statement.Engine, table, bean, includeVersion, includeUpdated, includeNil, includeAutoIncr, statement.allUseBool, statement.useAllCols, statement.unscoped, statement.mustColumnMap, statement.TableName(), statement.TableAlias, addedTableName) @@ -1213,7 +1200,8 @@ func (statement *Statement) genCountSql(bean interface{}) (string, []interface{} id = "" } statement.attachInSql() - return statement.genSelectSQL(fmt.Sprintf("count(%v)", id)), append(append(statement.joinArgs, statement.Params...), statement.BeanArgs...) + return statement.genSelectSQL(fmt.Sprintf("count(%v)", id)), append(append(append(statement.joinArgs, statement.Params...), + statement.BeanArgs...), statement.inParams...) } func (statement *Statement) genSumSql(bean interface{}, columns ...string) (string, []interface{}) { @@ -1233,7 +1221,8 @@ func (statement *Statement) genSumSql(bean interface{}, columns ...string) (stri for _, colName := range columns { sumStrs = append(sumStrs, fmt.Sprintf("sum(%s)", colName)) } - return statement.genSelectSQL(strings.Join(sumStrs, ", ")), append(append(statement.joinArgs, statement.Params...), statement.BeanArgs...) + return statement.genSelectSQL(strings.Join(sumStrs, ", ")), append(append(append(statement.joinArgs, statement.Params...), + statement.BeanArgs...), statement.inParams...) } func (statement *Statement) genSelectSQL(columnStr string) (a string) { diff --git a/xorm.go b/xorm.go index fdd995bd..b8fc080f 100644 --- a/xorm.go +++ b/xorm.go @@ -17,7 +17,7 @@ import ( const ( // Version show the xorm's version - Version string = "0.5.5.0711" + Version string = "0.5.5.0728" ) func regDrvsNDialects() bool {