| 387 | |
| 388 | template <bool ignoreNullKeys> |
| 389 | bool HashTable<ignoreNullKeys>::compareKeys( |
| 390 | const char* group, |
| 391 | HashLookup& lookup, |
| 392 | vector_size_t row) { |
| 393 | int32_t numKeys = lookup.hashers.size(); |
| 394 | // The loop runs at least once. Allow for first comparison to fail |
| 395 | // before loop end check. |
| 396 | int32_t i = 0; |
| 397 | do { |
| 398 | auto& hasher = lookup.hashers[i]; |
| 399 | if (!rows_->equals<!ignoreNullKeys>( |
| 400 | group, rows_->columnAt(i), hasher->decodedVector(), row)) { |
| 401 | return false; |
| 402 | } |
| 403 | } while (++i < numKeys); |
| 404 | return true; |
| 405 | } |
| 406 | |
| 407 | template <bool ignoreNullKeys> |
| 408 | bool HashTable<ignoreNullKeys>::compareKeys( |