(cfg *SQLGenerator)
| 56 | } |
| 57 | |
| 58 | func (b binaryOp) SQLString(cfg *SQLGenerator) string { |
| 59 | sqlOp := "" |
| 60 | switch b.op { |
| 61 | case binaryOpOR: |
| 62 | sqlOp = "OR" |
| 63 | case binaryOpAND: |
| 64 | sqlOp = "AND" |
| 65 | default: |
| 66 | cfg.AddError(xerrors.Errorf("unsupported binary operator: %s (%d)", b.source, b.op)) |
| 67 | return "BinaryOpError" |
| 68 | } |
| 69 | |
| 70 | terms := make([]string, 0, len(b.Terms)) |
| 71 | for _, term := range b.Terms { |
| 72 | termSQL := term.SQLString(cfg) |
| 73 | terms = append(terms, termSQL) |
| 74 | } |
| 75 | |
| 76 | return strings.Join(terms, " "+sqlOp+" ") |
| 77 | } |