While use array as filter, like select * from table where data[0].a = 1, it will use arrayElement function to do its filter action, and go to #perform#executeTuple at arrayElement.cpp, which will return directly, and not init sink to builder.
and the sink_null_map_holder in builder not init, still is a nullptr, the left procedure will transform on this nullptr, and cause crash.
Documentation entry for user-facing changes
[ ] Documentation is written (mandatory for new features)
Changelog category (leave one):
Bug fix
Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):
Bug fix problem described in: https://github.com/oap-project/gluten/issues/2582
While use array as filter, like
select * from table where data[0].a = 1
, it will usearrayElement
function to do its filter action, and go to #perform#executeTuple at arrayElement.cpp, which will return directly, and not init sink to builder.and the
sink_null_map_holder
in builder not init, still is a nullptr, the left procedure will transform on this nullptr, and cause crash.Documentation entry for user-facing changes