Skip to content

[C++] SwissJoin Filter Empty Rows Failed! #41121

@Light-City

Description

@Light-City

Describe the bug, including details regarding any error messages, version, and platform.

table :

gpadmin=# select * from stu;
 id | name | age 
----+------+-----
  2 | hack |  28
(1 row)

gpadmin=# select * from score;
 id | stu_id | subject | score 
----+--------+---------+-------
  1 |     10 | Jack    |    95
  2 |     10 | Jack    |    98
  3 |     12 | math    |    97
  4 |     15 | TOM     |    92
(4 rows)

expected result : when we execute sql :

SELECT * FROM stu st WHERE NOT  EXISTS (SELECT stu_id FROM score 
where score.stu_id = st.id and st.age>25);
 id | name | age 
----+------+-----
  2 | hack |  28
(1 row)

actual result: crash, since arrow swiss filter crash!

Running main() from /Users/light/workspace/arrow/cpp/build/_deps/googletest-src/googletest/src/gtest_main.cc
Note: Google Test filter = HashJoin.FilterEmptyRows
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from HashJoin
[ RUN      ] HashJoin.FilterEmptyRows
/Users/light/workspace/arrow/cpp/src/arrow/compute/light_array.cc:754:  Check failed: num_rows() > 0 

Component(s)

C++

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions