MCPcopy Index your code
hub / github.com/dropbox/godropbox / In

Function In

database/sqlbuilder/expression.go:596–684  ·  view source on GitHub ↗

Returns a representation of "a IN (b[0], ..., b[n-1])", where b is a list of literals valList must be a slice type

(lhs Expression, valList interface{})

Source from the content-addressed store, hash-verified

594// Returns a representation of "a IN (b[0], ..., b[n-1])", where b is a list
595// of literals valList must be a slice type
596func In(lhs Expression, valList interface{}) BoolExpression {
597 var clauses []Clause
598 switch val := valList.(type) {
599 // This atrocious body of copy-paste code is due to the fact that if you
600 // try to merge the cases, you can't treat val as a list
601 case []int:
602 clauses = make([]Clause, 0, len(val))
603 for _, v := range val {
604 clauses = append(clauses, Literal(v))
605 }
606 case []int32:
607 clauses = make([]Clause, 0, len(val))
608 for _, v := range val {
609 clauses = append(clauses, Literal(v))
610 }
611 case []int64:
612 clauses = make([]Clause, 0, len(val))
613 for _, v := range val {
614 clauses = append(clauses, Literal(v))
615 }
616 case []uint:
617 clauses = make([]Clause, 0, len(val))
618 for _, v := range val {
619 clauses = append(clauses, Literal(v))
620 }
621 case []uint32:
622 clauses = make([]Clause, 0, len(val))
623 for _, v := range val {
624 clauses = append(clauses, Literal(v))
625 }
626 case []uint64:
627 clauses = make([]Clause, 0, len(val))
628 for _, v := range val {
629 clauses = append(clauses, Literal(v))
630 }
631 case []float64:
632 clauses = make([]Clause, 0, len(val))
633 for _, v := range val {
634 clauses = append(clauses, Literal(v))
635 }
636 case []string:
637 clauses = make([]Clause, 0, len(val))
638 for _, v := range val {
639 clauses = append(clauses, Literal(v))
640 }
641 case [][]byte:
642 clauses = make([]Clause, 0, len(val))
643 for _, v := range val {
644 clauses = append(clauses, Literal(v))
645 }
646 case []time.Time:
647 clauses = make([]Clause, 0, len(val))
648 for _, v := range val {
649 clauses = append(clauses, Literal(v))
650 }
651 case []sqltypes.Numeric:
652 clauses = make([]Clause, 0, len(val))
653 for _, v := range val {

Callers 3

TestInExprMethod · 0.85
TestInExprEmptyListMethod · 0.85
ExampleFunction · 0.85

Calls 2

NewfFunction · 0.92
LiteralFunction · 0.85

Tested by 3

TestInExprMethod · 0.68
TestInExprEmptyListMethod · 0.68
ExampleFunction · 0.68