| 152 | } |
| 153 | |
| 154 | inline HashTable::Iterator HashTable::FindProbeRow(HashTableCtx* __restrict__ ht_ctx) { |
| 155 | bool found = false; |
| 156 | uint32_t hash = ht_ctx->expr_values_cache()->CurExprValuesHash(); |
| 157 | BucketData bd; |
| 158 | int64_t bucket_idx = |
| 159 | Probe<false, true>(buckets_, hash_array_, num_buckets_, ht_ctx, hash, &found, &bd); |
| 160 | if (found) { |
| 161 | return Iterator(this, ht_ctx->scratch_row(), bucket_idx, |
| 162 | stores_duplicates() ? bd.duplicates : NULL); |
| 163 | } |
| 164 | return End(); |
| 165 | } |
| 166 | |
| 167 | // TODO: support lazy evaluation like HashTable::Insert(). |
| 168 | template <HashTable::BucketType TYPE> |