(terms ...interface{})
| 360 | } |
| 361 | |
| 362 | func (sel *selector) On(terms ...interface{}) db.Selector { |
| 363 | return sel.frame(func(sq *selectorQuery) error { |
| 364 | joins := len(sq.joins) |
| 365 | |
| 366 | if joins == 0 { |
| 367 | return errors.New(`cannot use On() without a preceding Join() expression`) |
| 368 | } |
| 369 | |
| 370 | lastJoin := sq.joins[joins-1] |
| 371 | if lastJoin.On != nil { |
| 372 | return errors.New(`cannot use Using() and On() with the same Join() expression`) |
| 373 | } |
| 374 | |
| 375 | w, a := sel.SQL().t.toWhereWithArguments(terms) |
| 376 | o := exql.On(w) |
| 377 | |
| 378 | lastJoin.On = &o |
| 379 | |
| 380 | sq.joinsArgs = append(sq.joinsArgs, a...) |
| 381 | |
| 382 | return nil |
| 383 | }) |
| 384 | } |
| 385 | |
| 386 | func (sel *selector) Limit(n int) db.Selector { |
| 387 | return sel.frame(func(sq *selectorQuery) error { |
nothing calls this directly
no test coverage detected