41
vendor/github.com/gocraft/dbr/join.go
generated
vendored
Normal file
41
vendor/github.com/gocraft/dbr/join.go
generated
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
package dbr
|
||||
|
||||
type joinType uint8
|
||||
|
||||
const (
|
||||
inner joinType = iota
|
||||
left
|
||||
right
|
||||
full
|
||||
)
|
||||
|
||||
func join(t joinType, table interface{}, on interface{}) Builder {
|
||||
return BuildFunc(func(d Dialect, buf Buffer) error {
|
||||
buf.WriteString(" ")
|
||||
switch t {
|
||||
case left:
|
||||
buf.WriteString("LEFT ")
|
||||
case right:
|
||||
buf.WriteString("RIGHT ")
|
||||
case full:
|
||||
buf.WriteString("FULL ")
|
||||
}
|
||||
buf.WriteString("JOIN ")
|
||||
switch table := table.(type) {
|
||||
case string:
|
||||
buf.WriteString(d.QuoteIdent(table))
|
||||
default:
|
||||
buf.WriteString(placeholder)
|
||||
buf.WriteValue(table)
|
||||
}
|
||||
buf.WriteString(" ON ")
|
||||
switch on := on.(type) {
|
||||
case string:
|
||||
buf.WriteString(on)
|
||||
case Builder:
|
||||
buf.WriteString(placeholder)
|
||||
buf.WriteValue(on)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user