[
https://issues.apache.org/jira/browse/PHOENIX-6980?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Istvan Toth reassigned PHOENIX-6980:
------------------------------------
Assignee: Istvan Toth
> Push TopN down into joins where applicable
> ------------------------------------------
>
> Key: PHOENIX-6980
> URL: https://issues.apache.org/jira/browse/PHOENIX-6980
> Project: Phoenix
> Issue Type: Improvement
> Reporter: Istvan Toth
> Assignee: Istvan Toth
> Priority: Major
>
> This came up with an non-merging hinted uncovered index query, which may not
> be directly applicable in the latest versions, but the same problem is
> reproducible with a simple IN subquery, which uses the same plan:
> {noformat}
> CREATE TABLE A(A_ID INTEGER NOT NULL PRIMARY KEY, A_V1 INTEGER);
> CREATE TABLE B(B_ID INTEGER NOT NULL PRIMARY KEY, B_V1 INTEGER);
> explain select * from A where (A_ID, A_V1) in (select B_ID, B_V1 from b )
> order by a_v1 limit 10;
> +-----------------------------------------------------------------+----------------+---------------+-------------+
> | PLAN |
> EST_BYTES_READ | EST_ROWS_READ | EST_INFO_TS |
> +-----------------------------------------------------------------+----------------+---------------+-------------+
> | CLIENT 1-CHUNK PARALLEL 1-WAY FULL SCAN OVER A | null
> | null | null |
> | SERVER TOP 10 ROWS SORTED BY [A.A_V1] | null
> | null | null |
> | CLIENT MERGE SORT | null
> | null | null |
> | CLIENT LIMIT 10 | null
> | null | null |
> | SKIP-SCAN-JOIN TABLE 0 | null
> | null | null |
> | CLIENT 1-CHUNK PARALLEL 1-WAY FULL SCAN OVER B | null
> | null | null |
> | SERVER AGGREGATE INTO DISTINCT ROWS BY [B_ID, B_V1] | null
> | null | null |
> | CLIENT MERGE SORT | null
> | null | null |
> | DYNAMIC SERVER FILTER BY A.A_ID IN ($48.$50) | null
> | null | null |
> +-----------------------------------------------------------------+----------------+---------------+-------------+
> {noformat}
> This is super inefficient, the topN part should be pushed down into the inner
> query.
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)