-
Notifications
You must be signed in to change notification settings - Fork 961
Open
Labels
bugSomething isn't workingSomething isn't workinglibcudfAffects libcudf (C++/CUDA) code.Affects libcudf (C++/CUDA) code.
Milestone
Description
Describe the bug
When column_reference is out of bounds, AST errors with
C++ exception with description "vector::_M_range_check: __n (which is 2) >= this->size() (which is 2)" thrown in the test body.
This error is hard to debug and narrow down exact error.
Steps/Code to reproduce bug
Add following test to cpp/tests/ast/transform_tests.cpp
cpp
TEST_F(TransformTest, ColumnReferenceExceed)
{
auto c_0 = column_wrapper<int32_t>{3, 20, 1, 50};
auto c_1 = column_wrapper<int32_t>{10, 7, 20, 0};
auto table = cudf::table_view{{c_0, c_1}};
auto col_ref_0 = cudf::ast::column_reference(2);
auto const& expected = c_0;
auto result = cudf::compute_column(table, col_ref_0);
CUDF_TEST_EXPECT_COLUMNS_EQUAL(expected, result->view(), verbosity);
}
Expected behavior
Consider bounds checking of column index before
cudf/cpp/src/ast/expression_parser.cpp
Line 223 in ac03ea8
expr.get_column_index(), |
and throw relevant error, or
std::out_of_range
Additional context
I encountered this bug while debugging filter evaluation for velox.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workinglibcudfAffects libcudf (C++/CUDA) code.Affects libcudf (C++/CUDA) code.
Type
Projects
Status
Needs owner