chaozwn commented on a change in pull request #16051: URL: https://github.com/apache/flink/pull/16051#discussion_r690080626
########## File path: docs/content.zh/docs/dev/table/sql/explain.md ########## @@ -137,52 +152,142 @@ table_result = t_env.execute_sql( "SELECT `count`, word FROM MyTable2") table_result.print() +table_result2 = t_env.execute_sql( + "EXPLAIN ESTIMATED_COST, CHANGELOG_MODE, JSON_EXECUTION_PLAN " + "SELECT `count`, word FROM MyTable1 WHERE word LIKE 'F%' " + "UNION ALL " + "SELECT `count`, word FROM MyTable2") +table_result2.print() + ``` {{< /tab >}} {{< tab "SQL CLI" >}} + ```sql -Flink SQL> CREATE TABLE MyTable1 (`count` bigint, word VARCHAR(256); +Flink SQL> CREATE TABLE MyTable1 (`count` bigint, word VARCHAR(256)) WITH ('connector' = 'datagen'); [INFO] Table has been created. -Flink SQL> CREATE TABLE MyTable2 (`count` bigint, word VARCHAR(256); +Flink SQL> CREATE TABLE MyTable2 (`count` bigint, word VARCHAR(256)) WITH ('connector' = 'datagen'); [INFO] Table has been created. Flink SQL> EXPLAIN PLAN FOR SELECT `count`, word FROM MyTable1 WHERE word LIKE 'F%' > UNION ALL > SELECT `count`, word FROM MyTable2; - + +Flink SQL> EXPLAIN ESTIMATED_COST, CHANGELOG_MODE, JSON_EXECUTION_PLAN SELECT `count`, word FROM MyTable1 +> WHERE word LIKE 'F%' +> UNION ALL +> SELECT `count`, word FROM MyTable2; ``` {{< /tab >}} {{< /tabs >}} The `EXPLAIN` result is: + +{{< tabs "explain result" >}} + +{{< tab "PLAN FOR" >}} + +```text +== Abstract Syntax Tree == +LogicalUnion(all=[true]) +:- LogicalProject(count=[$0], word=[$1]) +: +- LogicalFilter(condition=[LIKE($1, _UTF-16LE'F%')]) +: +- LogicalTableScan(table=[[default_catalog, default_database, MyTable1]]) ++- LogicalProject(count=[$0], word=[$1]) + +- LogicalTableScan(table=[[default_catalog, default_database, MyTable2]]) + +== Optimized Physical Plan == +Union(all=[true], union=[count, word]) +:- Calc(select=[count, word], where=[LIKE(word, _UTF-16LE'F%')]) +: +- TableSourceScan(table=[[default_catalog, default_database, MyTable1]], fields=[count, word]) ++- TableSourceScan(table=[[default_catalog, default_database, MyTable2]], fields=[count, word]) + +== Optimized Execution Plan == +Union(all=[true], union=[count, word]) +:- Calc(select=[count, word], where=[LIKE(word, _UTF-16LE'F%')]) +: +- TableSourceScan(table=[[default_catalog, default_database, MyTable1]], fields=[count, word]) ++- TableSourceScan(table=[[default_catalog, default_database, MyTable2]], fields=[count, word]) +``` + +{{< /tab >}} + +{{< tab "EXPLAINDETAILS" >}} Review comment: I have completed the modification. -- 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: issues-unsubscr...@flink.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org