(qc *queryContext, pred1SubjectUid uint64, pred1Predicate string)
| 2490 | } |
| 2491 | |
| 2492 | func isSwap(qc *queryContext, pred1SubjectUid uint64, pred1Predicate string) (bool, error) { |
| 2493 | for i := range qc.uniqueVars { |
| 2494 | gmuIndex, rdfIndex := decodeIndex(i) |
| 2495 | pred2 := qc.gmuList[gmuIndex].Set[rdfIndex] |
| 2496 | var pred2SubjectUid uint64 |
| 2497 | if !strings.HasPrefix(pred2.Subject, "uid(") { |
| 2498 | var err error |
| 2499 | pred2SubjectUid, err = parseSubject(pred2.Subject) |
| 2500 | if err != nil { |
| 2501 | return false, errors.Wrapf(err, "error while parsing [%v]", pred2.Subject) |
| 2502 | } |
| 2503 | } else { |
| 2504 | pred2SubjectUid = 0 |
| 2505 | } |
| 2506 | |
| 2507 | if pred2SubjectUid == pred1SubjectUid && pred1Predicate == pred2.Predicate { |
| 2508 | return true, nil |
| 2509 | } |
| 2510 | } |
| 2511 | return false, nil |
| 2512 | } |
| 2513 | |
| 2514 | // encodeBit two uint32 numbers by bit. |
| 2515 | // First 32 bits store k1 and last 32 bits store k2. |
no test coverage detected