irenjj opened a new issue, #16173:
URL: https://github.com/apache/datafusion/issues/16173
### Is your feature request related to a problem or challenge?
As the first step implementation of the HyPer paper 'Unnesting Arbitrary
Queries', it will converts correlated subqueries into the form of dependent
joins.
In DuckDB:
```sql
┌─────────────────────────────┐
│┌───────────────────────────┐│
││ Unoptimized Logical Plan ││
│└───────────────────────────┘│
└─────────────────────────────┘
┌───────────────────────────┐
│ PROJECTION │
│ ──────────────────── │
│ Expressions: │
│ id │
│ value │
└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│ FILTER │
│ ──────────────────── │
│ Expressions: │
│ (CAST(value AS BIGINT) > │
│ SUBQUERY) │
└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│ DEPENDENT_JOIN │
│ ──────────────────── ├──────────────┐
│ Join Type: SINGLE │ │
└─────────────┬─────────────┘ │
┌─────────────┴─────────────┐┌─────────────┴─────────────┐
│ SEQ_SCAN ││ PROJECTION │
│ ──────────────────── ││ ──────────────────── │
│ Table: table1 ││ Expressions: │
│ Type: Sequential Scan ││ count_star() │
└───────────────────────────┘└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│ AGGREGATE │
│ ──────────────────── │
│ Expressions: │
│ count_star() │
└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│ FILTER │
│ ──────────────────── │
│ Expressions: │
│ (ref_id = id) │
│ (CAST(quantity AS BIGINT) │
│ = SUBQUERY) │
└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│ DEPENDENT_JOIN │
│ ──────────────────── ├──────────────┐
│ Join Type: SINGLE │ │
└─────────────┬─────────────┘ │
┌─────────────┴─────────────┐┌─────────────┴─────────────┐
│ SEQ_SCAN ││
PROJECTION │
│ ──────────────────── ││
──────────────────── │
│ Table: table2 ││
Expressions: │
│ Type: Sequential Scan ││
count_star() │
└───────────────────────────┘└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│
AGGREGATE │
│
──────────────────── │
│
Expressions: │
│
count_star() │
└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│ FILTER
│
│
──────────────────── │
│
Expressions: │
│ (id =
id) │
└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│
SEQ_SCAN │
│
──────────────────── │
│ Table:
table1 │
│ Type:
Sequential Scan │
└───────────────────────────┘
```
### Describe the solution you'd like
I'd like to split into follow small tasks:
- [ ] Transform scalar correlated subqueries in `Where` to DependentJoin:
#16172
- [ ] Transform scalar correlated subqueries in `Select` to DependentJoin:
- [ ] Other subquery type support:
...
### Describe alternatives you've considered
_No response_
### Additional context
_No response_
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]