| 261 | } |
| 262 | |
| 263 | void EvalCtx::addElementErrorsToTopLevel( |
| 264 | const SelectivityVector& elementRows, |
| 265 | const BufferPtr& elementToTopLevelRows, |
| 266 | ErrorVectorPtr& topLevelErrors) { |
| 267 | if (!errors_) { |
| 268 | return; |
| 269 | } |
| 270 | |
| 271 | const auto* rawElementToTopLevelRows = |
| 272 | elementToTopLevelRows->as<vector_size_t>(); |
| 273 | elementRows.applyToSelected([&](auto row) { |
| 274 | if (errors_->isIndexInRange(row) && !errors_->isNullAt(row)) { |
| 275 | addError( |
| 276 | rawElementToTopLevelRows[row], |
| 277 | *std::static_pointer_cast<std::exception_ptr>(errors_->valueAt(row)), |
| 278 | topLevelErrors); |
| 279 | } |
| 280 | }); |
| 281 | } |
| 282 | |
| 283 | void EvalCtx::convertElementErrorsToTopLevelNulls( |
| 284 | const SelectivityVector& elementRows, |
no test coverage detected