jackwener commented on PR #4620:
URL: 
https://github.com/apache/arrow-datafusion/pull/4620#issuecomment-1361016922

   > One classic way to represent the joins in a query is with a JoinGraph as 
@mingmwang points out where the nodes represent relations (tables / views / 
subqueries) and the edges represent predicates between them
   
   Exploiting the properties of graphs is a particularly complex. (Traverse the 
entire graph along the edges to can avoid `Cross Products` to avoid to produce 
useless Join Enumeration), it is some JoinReorder Algorithm `without Cross 
Products`
   
   Like DPCcp, paper: `Analysis of Two Existing and One New Dynamic Programming 
Algorithm for the Generation of Optimal Bushy Join Trees without Cross 
Products`.
   DPHyp(DPCcp enhancement), paper: `Dynamic Programming Strikes Back`
   Graph Simplifier (Reducing the size of the graph) paper: `Query 
Simplification: Graceful Degradation for Join-Order Optimization`.
   
   Above methods exist in MySQL8.0, like 
https://github.com/mysql/mysql-server/blob/8.0/sql/join_optimizer/hypergraph.h
   


-- 
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: github-unsubscr...@arrow.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to