(columns ...interface{})
| 305 | } |
| 306 | |
| 307 | func (sel *selector) Using(columns ...interface{}) db.Selector { |
| 308 | return sel.frame(func(sq *selectorQuery) error { |
| 309 | |
| 310 | joins := len(sq.joins) |
| 311 | if joins == 0 { |
| 312 | return errors.New(`cannot use Using() without a preceding Join() expression`) |
| 313 | } |
| 314 | |
| 315 | lastJoin := sq.joins[joins-1] |
| 316 | if lastJoin.On != nil { |
| 317 | return errors.New(`cannot use Using() and On() with the same Join() expression`) |
| 318 | } |
| 319 | |
| 320 | fragments, args, err := columnFragments(columns) |
| 321 | if err != nil { |
| 322 | return err |
| 323 | } |
| 324 | |
| 325 | sq.joinsArgs = append(sq.joinsArgs, args...) |
| 326 | lastJoin.Using = exql.UsingColumns(fragments...) |
| 327 | |
| 328 | return nil |
| 329 | }) |
| 330 | } |
| 331 | |
| 332 | func (sel *selector) FullJoin(tables ...interface{}) db.Selector { |
| 333 | return sel.frame(func(sq *selectorQuery) error { |
nothing calls this directly
no test coverage detected