Files
gorose/builder_interface.go
fizzday 52e8cddc55 pg fix
2020-07-31 06:04:23 +00:00

33 lines
686 B
Go

package gorose
import (
"fmt"
"regexp"
)
// IBuilder ...
type IBuilder interface {
IFieldQuotes
BuildQuery(orm IOrm) (sqlStr string, args []interface{}, err error)
BuildExecute(orm IOrm, operType string) (sqlStr string, args []interface{}, err error)
Clone() IBuilder
//GetIOrm() IOrm
}
// IFieldQuotes 给系统关键词冲突的字段加引号,如: mysql是反引号, pg是双引号
type IFieldQuotes interface {
AddFieldQuotes(field string) string
}
type FieldQuotesDefault struct {
}
func (FieldQuotesDefault) AddFieldQuotes(field string) string {
reg := regexp.MustCompile(`^\w+$`)
if reg.MatchString(field) {
return fmt.Sprintf("`%s`", field)
}
return field
}