| 220 | } |
| 221 | |
| 222 | Status ScalarExprEvaluator::GetError(int start_idx, int end_idx) const { |
| 223 | DCHECK(opened_); |
| 224 | end_idx = end_idx == -1 ? fn_ctxs_.size() : end_idx; |
| 225 | DCHECK_GE(start_idx, 0); |
| 226 | DCHECK_LE(end_idx, fn_ctxs_.size()); |
| 227 | for (int idx = start_idx; idx < end_idx; ++idx) { |
| 228 | DCHECK_LT(idx, fn_ctxs_.size()); |
| 229 | FunctionContext* fn_ctx = fn_ctxs_[idx]; |
| 230 | if (fn_ctx->has_error()) return Status(fn_ctx->error_msg()); |
| 231 | } |
| 232 | return Status::OK(); |
| 233 | } |
| 234 | |
| 235 | Status ScalarExprEvaluator::GetConstValue(RuntimeState* state, const ScalarExpr& expr, |
| 236 | AnyVal** const_val) { |