diff --git a/session_insert.go b/session_insert.go index c943ae11..44cae7c4 100644 --- a/session_insert.go +++ b/session_insert.go @@ -7,7 +7,6 @@ package xorm import ( "errors" "fmt" - "io" "reflect" "sort" "strconv" @@ -355,22 +354,22 @@ func (session *Session) innerInsert(bean interface{}) (int64, error) { } var buf = builder.NewWriter() - if _, err := io.WriteString(buf, fmt.Sprintf("INSERT INTO %s", session.engine.Quote(tableName))); err != nil { + if _, err := buf.WriteString(fmt.Sprintf("INSERT INTO %s", session.engine.Quote(tableName))); err != nil { return 0, err } if len(colPlaces) <= 0 { if session.engine.dialect.DBType() == core.MYSQL { - if _, err := io.WriteString(buf, " VALUES ()"); err != nil { + if _, err := buf.WriteString(" VALUES ()"); err != nil { return 0, err } } else { - if _, err := io.WriteString(buf, fmt.Sprintf("%s DEFAULT VALUES", output)); err != nil { + if _, err := buf.WriteString(fmt.Sprintf("%s DEFAULT VALUES", output)); err != nil { return 0, err } } } else { - if _, err := io.WriteString(buf, " ("); err != nil { + if _, err := buf.WriteString(" ("); err != nil { return 0, err } @@ -379,9 +378,7 @@ func (session *Session) innerInsert(bean interface{}) (int64, error) { } if session.statement.cond.IsValid() { - if _, err := io.WriteString(buf, fmt.Sprintf(")%s SELECT ", - output, - )); err != nil { + if _, err := buf.WriteString(fmt.Sprintf(")%s SELECT ", output)); err != nil { return 0, err } @@ -398,7 +395,7 @@ func (session *Session) innerInsert(bean interface{}) (int64, error) { return 0, err } - if _, err := io.WriteString(buf, fmt.Sprintf(" FROM %v WHERE ", session.engine.Quote(tableName))); err != nil { + if _, err := buf.WriteString(fmt.Sprintf(" FROM %v WHERE ", session.engine.Quote(tableName))); err != nil { return 0, err } @@ -408,7 +405,7 @@ func (session *Session) innerInsert(bean interface{}) (int64, error) { } else { buf.Append(args...) - if _, err := io.WriteString(buf, fmt.Sprintf(")%s VALUES (%v", + if _, err := buf.WriteString(fmt.Sprintf(")%s VALUES (%v", output, colPlaces)); err != nil { return 0, err @@ -418,21 +415,21 @@ func (session *Session) innerInsert(bean interface{}) (int64, error) { return 0, err } - if _, err := io.WriteString(buf, ")"); err != nil { + if _, err := buf.WriteString(")"); err != nil { return 0, err } } } - sqlStr := buf.String() - args = buf.Args() - if len(table.AutoIncrement) > 0 && session.engine.dialect.DBType() == core.POSTGRES { - if _, err := io.WriteString(buf, " RETURNING "+session.engine.Quote(table.AutoIncrement)); err != nil { + if _, err := buf.WriteString(" RETURNING " + session.engine.Quote(table.AutoIncrement)); err != nil { return 0, err } } + sqlStr := buf.String() + args = buf.Args() + handleAfterInsertProcessorFunc := func(bean interface{}) { if session.isAutoCommit { for _, closure := range session.afterClosures { diff --git a/statement_args.go b/statement_args.go index aec12240..c6168db1 100644 --- a/statement_args.go +++ b/statement_args.go @@ -6,7 +6,6 @@ package xorm import ( "fmt" - "io" "xorm.io/builder" ) @@ -47,20 +46,20 @@ func writeArgs(w *builder.BytesWriter, args []interface{}) error { func writeStrings(w *builder.BytesWriter, cols []string, leftQuote, rightQuote string) error { for i, colName := range cols { if len(leftQuote) > 0 && colName[0] != '`' { - if _, err := io.WriteString(w, leftQuote); err != nil { + if _, err := w.WriteString(leftQuote); err != nil { return err } } - if _, err := io.WriteString(w, colName); err != nil { + if _, err := w.WriteString(colName); err != nil { return err } if len(rightQuote) > 0 && colName[len(colName)-1] != '`' { - if _, err := io.WriteString(w, rightQuote); err != nil { + if _, err := w.WriteString(rightQuote); err != nil { return err } } if i+1 != len(cols) { - if _, err := io.WriteString(w, ","); err != nil { + if _, err := w.WriteString(","); err != nil { return err } } diff --git a/statement_exprparam.go b/statement_exprparam.go index dfe3730c..a72f0aea 100644 --- a/statement_exprparam.go +++ b/statement_exprparam.go @@ -6,7 +6,6 @@ package xorm import ( "fmt" - "io" "strings" "xorm.io/builder" @@ -57,7 +56,7 @@ func (exprs *exprParams) getByName(colName string) (exprParam, bool) { return exprParam{}, false } -func (exprs *exprParams) writeArgs(w builder.Writer) error { +func (exprs *exprParams) writeArgs(w *builder.BytesWriter) error { for _, expr := range exprs.args { switch arg := expr.(type) { case *builder.Builder: @@ -65,7 +64,7 @@ func (exprs *exprParams) writeArgs(w builder.Writer) error { return err } default: - if _, err := io.WriteString(w, fmt.Sprintf("%v", arg)); err != nil { + if _, err := w.WriteString(fmt.Sprintf("%v", arg)); err != nil { return err } } @@ -73,12 +72,12 @@ func (exprs *exprParams) writeArgs(w builder.Writer) error { return nil } -func (exprs *exprParams) writeNameArgs(w builder.Writer) error { +func (exprs *exprParams) writeNameArgs(w *builder.BytesWriter) error { for i, colName := range exprs.colNames { - if _, err := io.WriteString(w, colName); err != nil { + if _, err := w.WriteString(colName); err != nil { return err } - if _, err := io.WriteString(w, "="); err != nil { + if _, err := w.WriteString("="); err != nil { return err } @@ -92,7 +91,7 @@ func (exprs *exprParams) writeNameArgs(w builder.Writer) error { } if i+1 != len(exprs.colNames) { - if _, err := io.WriteString(w, ","); err != nil { + if _, err := w.WriteString(","); err != nil { return err } }