Ramin Gharib created FLINK-38081: ------------------------------------ Summary: FLIP-528: Support EXPLAIN EXECUTE STATEMENT SET Syntax in Flink SQL Key: FLINK-38081 URL: https://issues.apache.org/jira/browse/FLINK-38081 Project: Flink Issue Type: Improvement Components: Table SQL / Planner Reporter: Ramin Gharib
Apache Flink supports the {{STATEMENT SET}} syntax to group and optimize multiple SQL statements, which is especially useful for reusing intermediate results in {{INSERT INTO}} statements. Currently, a user can write and execute such a block using: {panel} {panel} |{{EXECUTE}} {{STATEMENT }}{{SET}} {{BEGIN}} {{ }}{{INSERT}} {{INTO}} {{`sales` }}{{SELECT}} {{...;}} {{ }}{{INSERT}} {{INTO}} {{`products` }}{{SELECT}} {{...;}} {{{}END{}}}{{{};{}}}| However, if a user wants to preview or debug the execution plan of such a block using {{{}EXPLAIN{}}}, the syntax must drop the {{EXECUTE}} keyword: {panel} {panel} |{{EXPLAIN STATEMENT }}{{SET}} {{BEGIN}} {{ }}{{INSERT}} {{INTO}} {{`sales` }}{{SELECT}} {{...;}} {{ }}{{INSERT}} {{INTO}} {{`products` }}{{SELECT}} {{...;}} {{{}END{}}}{{{};{}}}| This behavior is inconsistent and counterintuitive. Typically, {{EXPLAIN}} can be prepended to most SQL operations (e.g., {{{}EXPLAIN INSERT{}}}, {{{}EXPLAIN CREATE TABLE AS SELECT{}}}) without any syntactic modification. Requiring users to remove {{EXECUTE}} breaks this convention and leads to confusion. This FLIP proposes extending Flink SQL to support the syntax {{EXPLAIN EXECUTE STATEMENT SET}} to improve usability and consistency. More details can be found under the [FLIP-528|https://cwiki.apache.org/confluence/display/FLINK/FLIP-528%3A+Support+EXPLAIN+EXECUTE+STATEMENT+SET+Syntax+in+Flink+SQL]. -- This message was sent by Atlassian Jira (v8.20.10#820010)