1package clause 2 3// From from clause 4type From struct { 5 Tables []Table 6 Joins []Join 7} 8 9// Name from clause name 10func (from From) Name() string { 11 return "FROM" 12} 13 14// Build build from clause 15func (from From) Build(builder Builder) { 16 if len(from.Tables) > 0 { 17 for idx, table := range from.Tables { 18 if idx > 0 { 19 builder.WriteByte(',') 20 } 21 22 builder.WriteQuoted(table) 23 } 24 } else { 25 builder.WriteQuoted(currentTable) 26 } 27 28 for _, join := range from.Joins { 29 builder.WriteByte(' ') 30 join.Build(builder) 31 } 32} 33 34// MergeClause merge from clause 35func (from From) MergeClause(clause *Clause) { 36 clause.Expression = from 37} 38