Fix test
This commit is contained in:
parent
261e604c14
commit
5711ab9918
|
@ -4,7 +4,27 @@
|
||||||
|
|
||||||
package statements
|
package statements
|
||||||
|
|
||||||
import "xorm.io/builder"
|
import (
|
||||||
|
"xorm.io/builder"
|
||||||
|
"xorm.io/xorm/schemas"
|
||||||
|
)
|
||||||
|
|
||||||
|
type QuoteReplacer struct {
|
||||||
|
*builder.BytesWriter
|
||||||
|
quoter schemas.Quoter
|
||||||
|
}
|
||||||
|
|
||||||
|
func (q *QuoteReplacer) Write(p []byte) (n int, err error) {
|
||||||
|
c := q.quoter.Replace(string(p))
|
||||||
|
return q.BytesWriter.Builder.WriteString(c)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (statement *Statement) quoteReplacer(w *builder.BytesWriter) *QuoteReplacer {
|
||||||
|
return &QuoteReplacer{
|
||||||
|
BytesWriter: w,
|
||||||
|
quoter: statement.dialect.Quoter(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Where add Where statement
|
// Where add Where statement
|
||||||
func (statement *Statement) Where(query interface{}, args ...interface{}) *Statement {
|
func (statement *Statement) Where(query interface{}, args ...interface{}) *Statement {
|
||||||
|
@ -15,7 +35,7 @@ func (statement *Statement) Where(query interface{}, args ...interface{}) *State
|
||||||
func (statement *Statement) And(query interface{}, args ...interface{}) *Statement {
|
func (statement *Statement) And(query interface{}, args ...interface{}) *Statement {
|
||||||
switch qr := query.(type) {
|
switch qr := query.(type) {
|
||||||
case string:
|
case string:
|
||||||
cond := builder.Expr(qr, args...)
|
cond := builder.Expr(statement.ReplaceQuote(qr), args...)
|
||||||
statement.cond = statement.cond.And(cond)
|
statement.cond = statement.cond.And(cond)
|
||||||
case map[string]interface{}:
|
case map[string]interface{}:
|
||||||
cond := make(builder.Eq)
|
cond := make(builder.Eq)
|
||||||
|
|
|
@ -231,7 +231,7 @@ func (statement *Statement) genSelectSQL(columnStr string, needLimit, needOrderB
|
||||||
}
|
}
|
||||||
|
|
||||||
condWriter := builder.NewWriter()
|
condWriter := builder.NewWriter()
|
||||||
if err := statement.cond.WriteTo(condWriter); err != nil {
|
if err := statement.cond.WriteTo(statement.quoteReplacer(condWriter)); err != nil {
|
||||||
return "", nil, err
|
return "", nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -282,7 +282,7 @@ func (statement *Statement) genSelectSQL(columnStr string, needLimit, needOrderB
|
||||||
if _, err := fmt.Fprint(mssqlCondi, whereStr); err != nil {
|
if _, err := fmt.Fprint(mssqlCondi, whereStr); err != nil {
|
||||||
return "", nil, err
|
return "", nil, err
|
||||||
}
|
}
|
||||||
if err := utils.WriteBuilder(mssqlCondi, condWriter); err != nil {
|
if err := utils.WriteBuilder(mssqlCondi, statement.quoteReplacer(condWriter)); err != nil {
|
||||||
return "", nil, err
|
return "", nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -311,7 +311,7 @@ func (statement *Statement) genSelectSQL(columnStr string, needLimit, needOrderB
|
||||||
if _, err := fmt.Fprint(buf, whereStr); err != nil {
|
if _, err := fmt.Fprint(buf, whereStr); err != nil {
|
||||||
return "", nil, err
|
return "", nil, err
|
||||||
}
|
}
|
||||||
if err := utils.WriteBuilder(buf, condWriter); err != nil {
|
if err := utils.WriteBuilder(buf, statement.quoteReplacer(condWriter)); err != nil {
|
||||||
return "", nil, err
|
return "", nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,8 +10,13 @@ import (
|
||||||
"xorm.io/builder"
|
"xorm.io/builder"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type BuildReader interface {
|
||||||
|
String() string
|
||||||
|
Args() []interface{}
|
||||||
|
}
|
||||||
|
|
||||||
// WriteBuilder writes writers to one
|
// WriteBuilder writes writers to one
|
||||||
func WriteBuilder(w *builder.BytesWriter, inputs ...*builder.BytesWriter) error {
|
func WriteBuilder(w *builder.BytesWriter, inputs ...BuildReader) error {
|
||||||
for _, input := range inputs {
|
for _, input := range inputs {
|
||||||
if _, err := fmt.Fprint(w, input.String()); err != nil {
|
if _, err := fmt.Fprint(w, input.String()); err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
Loading…
Reference in New Issue