()
| 189 | } |
| 190 | |
| 191 | func (j *joinImpl) Compute() (*DataTable, error) { |
| 192 | if err := j.checkInput(); err != nil { |
| 193 | return nil, err |
| 194 | } |
| 195 | |
| 196 | j.initColMapper() |
| 197 | |
| 198 | out := j.tables[0] |
| 199 | for i := 1; i < len(j.tables); i++ { |
| 200 | jdt, err := j.join(out, j.tables[i]) |
| 201 | if err != nil { |
| 202 | return nil, err |
| 203 | } |
| 204 | out = jdt |
| 205 | } |
| 206 | |
| 207 | if out == nil { |
| 208 | return nil, ErrNoOutput |
| 209 | } |
| 210 | |
| 211 | return out, nil |
| 212 | } |
| 213 | |
| 214 | func (j *joinImpl) checkInput() error { |
| 215 | if len(j.tables) < 2 { |