| 21 | } |
| 22 | |
| 23 | static void execFunc(const std::vector<std::shared_ptr<common::ValueVector>>& params, |
| 24 | const std::vector<common::SelectionVector*>& paramSelVectors, common::ValueVector& result, |
| 25 | common::SelectionVector* resultSelVector, void* /*dataPtr*/) { |
| 26 | DASSERT(params.size() == 2); |
| 27 | result.resetAuxiliaryBuffer(); |
| 28 | for (auto i = 0u; i < resultSelVector->getSelSize(); ++i) { |
| 29 | auto resultPos = (*resultSelVector)[i]; |
| 30 | auto firstParamPos = params[0]->state->isFlat() ? (*paramSelVectors[0])[0] : resultPos; |
| 31 | auto secondParamPos = params[1]->state->isFlat() ? (*paramSelVectors[1])[0] : resultPos; |
| 32 | if (params[1]->isNull(secondParamPos) || params[0]->isNull(firstParamPos)) { |
| 33 | result.setNull(resultPos, true); |
| 34 | } else { |
| 35 | result.setNull(resultPos, false); |
| 36 | result.copyFromVectorData(resultPos, params[0].get(), firstParamPos); |
| 37 | } |
| 38 | } |
| 39 | } |
| 40 | |
| 41 | static bool selectFunc(const std::vector<std::shared_ptr<ValueVector>>& params, |
| 42 | SelectionVector& selVector, void* /* dataPtr */) { |
nothing calls this directly
no test coverage detected