[
https://issues.apache.org/jira/browse/FLINK-39090?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated FLINK-39090:
-----------------------------------
Labels: enhancement pull-request-available table-planner usability (was:
enhancement table-planner usability)
> [SQL] Enhanced join condition structured display
> ------------------------------------------------
>
> Key: FLINK-39090
> URL: https://issues.apache.org/jira/browse/FLINK-39090
> Project: Flink
> Issue Type: Improvement
> Components: Table SQL / Planner
> Reporter: featzhang
> Priority: Minor
> Labels: enhancement, pull-request-available, table-planner,
> usability
>
> Currently, the EXPLAIN output for FlinkLogicalJoin shows join conditions
> using positional references (e.g., =($0, $3)), which makes it difficult for
> users to understand the actual join logic, especially in complex queries with
> multiple tables.
> Example of current output:
> {code:java}
> Join(condition=[=($0, $3)])
> {code}
> This is not user-friendly because:
> 1. Users need to manually map positional indexes to field names
> 2. In complex queries with many fields, it's error-prone
> 3. It reduces SQL debuggability and readability
> Proposed enhancement:
> Display join conditions with actual field names in a structured format:
> {code:java}
> Join:
> Type: INNER
> Condition: orders.user_id = users.id
> {code}
> Benefits:
> - Improved user experience and query debugging
> - Better alignment with SQL semantics
> - Easier to understand join logic at a glance
> - No impact on RelNode structure or runtime performance
> Implementation approach:
> - Override explainTerms method in FlinkLogicalJoin class
> - Parse RexNode conditions recursively
> - Resolve field references to actual field names
> - Support EQUALS, AND, OR operators
> - Fallback to default formatting for complex expressions
> This is a display-only enhancement and does not modify any query optimization
> logic.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)