| 293 | // Overwrites the match_bytevector instead of updating it |
| 294 | template <bool use_selection, bool is_first_varbinary_col> |
| 295 | void KeyCompare::CompareVarBinaryColumnToRow(uint32_t id_varbinary_col, |
| 296 | uint32_t num_rows_to_compare, |
| 297 | const uint16_t* sel_left_maybe_null, |
| 298 | const uint32_t* left_to_right_map, |
| 299 | LightContext* ctx, const KeyColumnArray& col, |
| 300 | const RowTableImpl& rows, |
| 301 | uint8_t* match_bytevector) { |
| 302 | uint32_t num_processed = 0; |
| 303 | #if defined(ARROW_HAVE_RUNTIME_AVX2) |
| 304 | if (ctx->has_avx2()) { |
| 305 | num_processed = CompareVarBinaryColumnToRow_avx2( |
| 306 | use_selection, is_first_varbinary_col, id_varbinary_col, num_rows_to_compare, |
| 307 | sel_left_maybe_null, left_to_right_map, ctx, col, rows, match_bytevector); |
| 308 | } |
| 309 | #endif |
| 310 | |
| 311 | CompareVarBinaryColumnToRowHelper<use_selection, is_first_varbinary_col>( |
| 312 | id_varbinary_col, num_processed, num_rows_to_compare, sel_left_maybe_null, |
| 313 | left_to_right_map, ctx, col, rows, match_bytevector); |
| 314 | } |
| 315 | |
| 316 | void KeyCompare::AndByteVectors(LightContext* ctx, uint32_t num_elements, |
| 317 | uint8_t* bytevector_A, const uint8_t* bytevector_B) { |