| 244 | } |
| 245 | |
| 246 | uint32_t HashTableCtx::HashRow( |
| 247 | const uint8_t* expr_values, const uint8_t* expr_values_null) const noexcept { |
| 248 | DCHECK_LT(level_, seeds_.size()); |
| 249 | if (expr_values_cache_.var_result_offset() == -1) { |
| 250 | /// This handles NULLs implicitly since a constant seed value was put |
| 251 | /// into results buffer for nulls. |
| 252 | return Hash( |
| 253 | expr_values, expr_values_cache_.expr_values_bytes_per_row(), seeds_[level_]); |
| 254 | } else { |
| 255 | return HashTableCtx::HashVariableLenRow(expr_values, expr_values_null); |
| 256 | } |
| 257 | } |
| 258 | |
| 259 | bool HashTableCtx::EvalRow(const TupleRow* row, |
| 260 | const vector<ScalarExprEvaluator*>& evals, |
nothing calls this directly
no test coverage detected