-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Some In/Exists Subqueries will generate wrong PhysicalPlan #5265
Labels
Comments
I remember the filters will be added to wrong side. I can work on this and provide a fix. |
Here is a full reproducer: echo "1,2" > data.csv The run sql > create external table t1(t1_id int, t2_name int) stored as csv location 'data.csv';
0 row(s) fetched.
Elapsed 0.019 seconds.
> create external table t2(t2_id int, t2_name int) stored as csv location 'data.csv';
0 row(s) fetched.
Elapsed 0.007 seconds.
> explain select * from t1 where exists(select 1 from t2 where t2.t2_id > 0);
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
| plan_type | plan |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
| logical_plan | TableScan: t1 projection=[t1_id, t2_name], full_filters=[EXISTS (<subquery>)] |
| | Subquery: |
| | Projection: Int64(1) |
| | Filter: CAST(t2.t2_id AS Int64) > Int64(0) |
| | TableScan: t2 |
| physical_plan | CsvExec: file_groups={1 group: [[Users/andrewlamb/Software/datafusion2/datafusion-cli/data.csv]]}, projection=[t1_id, t2_name], has_header=true |
| | |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
2 row(s) fetched.
Elapsed 0.019 seconds. |
take |
This was referenced Oct 25, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Describe the bug
Datafusion can't execute non-correlated subquery now, like in/exists.
So these queries should return
NotImplemented("Physical plan does not support logical expression In/Exists
error. But currently the filter will be pushdown to the TableScan.For the above query, the subquery filter will be lost in the final
physical_plan
.To Reproduce
As above.
Expected behavior
The query should return
NotImplemented("Physical plan does not support logical expression In/Exists
error.Additional context
Add any other context about the problem here.
The text was updated successfully, but these errors were encountered: