From 9a4f2a8cc3e32ca98dab84d035ee95abea1879cf Mon Sep 17 00:00:00 2001 From: Avi Kivity Date: Sun, 12 Jun 2022 17:56:27 +0300 Subject: [PATCH] cql3: expr: wire column_value and subscript to evaluate() With everything standardized on evaluation_inputs(), it's a matter of calling get_value(). --- cql3/expr/expression.cc | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/cql3/expr/expression.cc b/cql3/expr/expression.cc index 9f65427705..11dfab9b47 100644 --- a/cql3/expr/expression.cc +++ b/cql3/expr/expression.cc @@ -1729,12 +1729,11 @@ constant evaluate(const expression& e, const evaluation_inputs& inputs) { on_internal_error(expr_logger, "Can't evaluate a field_selection"); }, - // TODO Should these be evaluable? - [](const column_value&) -> constant { - on_internal_error(expr_logger, "Can't evaluate a column_value"); + [&](const column_value& cv) -> constant { + return constant(raw_value::make_value(get_value(cv, inputs)), cv.col->type); }, - [](const subscript&) -> constant { - on_internal_error(expr_logger, "Can't evaluate a subscript"); + [&](const subscript& s) -> constant { + return constant(raw_value::make_value(get_value(s, inputs)), s.type); }, [](const untyped_constant&) -> constant { on_internal_error(expr_logger, "Can't evaluate a untyped_constant ");