Packages

An Elixir DuckDB library

Current section

Files

Jump to
exduckdb c_src duckdb src execution expression_executor execute_reference.cpp
Raw

c_src/duckdb/src/execution/expression_executor/execute_reference.cpp

#include "duckdb/execution/expression_executor.hpp"
#include "duckdb/planner/expression/bound_reference_expression.hpp"
namespace duckdb {
unique_ptr<ExpressionState> ExpressionExecutor::InitializeState(const BoundReferenceExpression &expr,
ExpressionExecutorState &root) {
auto result = make_unique<ExpressionState>(expr, root);
result->Finalize();
return result;
}
void ExpressionExecutor::Execute(const BoundReferenceExpression &expr, ExpressionState *state,
const SelectionVector *sel, idx_t count, Vector &result) {
D_ASSERT(expr.index != INVALID_INDEX);
D_ASSERT(expr.index < chunk->ColumnCount());
if (sel) {
result.Slice(chunk->data[expr.index], *sel, count);
} else {
result.Reference(chunk->data[expr.index]);
}
}
} // namespace duckdb