Files

38 lines
630 B
Go
Raw Permalink Normal View History

2020-02-02 14:40:44 +08:00
package clause
// From from clause
type From struct {
Tables []Table
2020-02-07 23:45:35 +08:00
Joins []Join
}
2020-02-02 14:40:44 +08:00
// Name from clause name
2020-02-07 23:45:35 +08:00
func (from From) Name() string {
2020-02-02 14:40:44 +08:00
return "FROM"
}
// Build build from clause
func (from From) Build(builder Builder) {
2020-02-04 09:51:19 +08:00
if len(from.Tables) > 0 {
for idx, table := range from.Tables {
if idx > 0 {
builder.WriteByte(',')
}
2020-02-02 14:40:44 +08:00
2020-02-04 09:51:19 +08:00
builder.WriteQuoted(table)
}
} else {
builder.WriteQuoted(currentTable)
2020-02-02 14:40:44 +08:00
}
2020-02-04 08:56:15 +08:00
2020-02-07 23:45:35 +08:00
for _, join := range from.Joins {
builder.WriteByte(' ')
join.Build(builder)
2020-02-04 08:56:15 +08:00
}
}
2020-02-07 23:45:35 +08:00
// MergeClause merge from clause
func (from From) MergeClause(clause *Clause) {
clause.Expression = from
}