123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- 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
- }
|