package clause import "strings" type From struct { otherClauses []Clause } func NewFrom(otherClauses []Clause) *From { return &From{ otherClauses: otherClauses, } } func (clause *From) Clause() (string, error) { if clause.otherClauses == nil || len(clause.otherClauses) == 0 { return "", nil } otherClauseBuilder := strings.Builder{} for _, otherClause := range clause.otherClauses { otherClauseStr, err := otherClause.Clause() if err != nil { return "", err } otherClauseBuilder.WriteString(" " + otherClauseStr) } clauseBuilder := strings.Builder{} clauseBuilder.WriteString("FROM\n") clauseBuilder.WriteString(otherClauseBuilder.String()) return clauseBuilder.String(), nil } func (clause *From) Args() []any { args := make([]any, 0) for _, otherClause := range clause.otherClauses { args = append(args, otherClause.Args()...) } return args }