[ 
https://issues.apache.org/jira/browse/FLINK-39089?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

featzhang updated FLINK-39089:
------------------------------
    Summary: [SQL] Enhanced projection field alias display  (was: [Table] 
Enhanced projection field alias display)

> [SQL] Enhanced projection field alias display
> ---------------------------------------------
>
>                 Key: FLINK-39089
>                 URL: https://issues.apache.org/jira/browse/FLINK-39089
>             Project: Flink
>          Issue Type: New Feature
>          Components: Table SQL / Planner
>            Reporter: featzhang
>            Priority: Major
>
> Currently, in Flink SQL's EXPLAIN output, LogicalProject nodes display field 
> references using positional indices like {{{}$0{}}}, {{{}$1{}}}, which makes 
> the execution plan difficult to read and understand. For example:
> {code:java}
> LogicalProject($0, $2)
> {code}
> This PR enhances the projection explain output to show actual field names and 
> their sources, making it more readable:
> {code:java}
> LogicalProject(id, user_name)
> {code}
> Or with more detail:
> {code:java}
> Project:
>   id := orders.id
>   user_name := users.name
> {code}
> h2. Brief change log
>  * Added {{projectFieldsToString}} method in {{RelExplainUtil}} to format 
> projection fields with readable field names
>  * The new method converts field references from positional indices ($0, $1) 
> to actual field names with proper aliasing
>  * Maintained backward compatibility - the utility method is available for 
> future integration
>  * Successfully compiled and tested with the flink-table-planner module
> h2. Verifying this change
> This change can be verified by:
>  # Running existing explain tests to ensure no regression
>  # Adding new test cases that verify enhanced projection alias display
>  # Manual testing with SQL queries containing projections:
> {code:sql}
> EXPLAIN SELECT id, user_name FROM orders;
> {code}
> Expected output should show field names instead of positional indices.
> h2. Does this pull request potentially affect one of the following parts:
>  * Dependencies (does it add or upgrade a dependency): *no*
>  * The public API, i.e., is any changed class annotated with 
> {{{}@Public(Evolving){}}}: *no*
>  * The serializers: *no*
>  * The runtime per-record code paths (performance sensitive): *no*
>  * Anything that affects deployment or recovery: JobManager (and its 
> components), Checkpointing, Kubernetes/Yarn, ZooKeeper: *no*
>  * The S3 file system connector: *no*
> h2. Documentation
>  * Does this pull request introduce a new feature? *yes*
>  * If yes, how is the feature documented? *code comments and JavaDocs*



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to