swuferhong commented on code in PR #20513: URL: https://github.com/apache/flink/pull/20513#discussion_r954669659
########## docs/content/docs/dev/table/sql/queries/hints.md: ########## @@ -84,4 +84,244 @@ insert into kafka_table1 /*+ OPTIONS('sink.partitioner'='round-robin') */ select ``` +## Query Hints + +`Query Hints` specify that the indicated hints are used in the scope of a query. Their effective scope is current `Query +block` ([What are query blocks ?](#what-are-query-blocks-)) which `Query Hints` specified in. Now, Flink `Query Hints` support `Join Hints`. + +### Syntax +The `Query Hints` syntax in Flink follows the syntax of `Query Hints` in Apache Calcite: +```sql +# Query Hints: +SELECT /*+ hint [, hint ] */ ... + +hint: + hintName + | hintName '(' optionKey '=' optionVal [, optionKey '=' optionVal ]* ')' + | hintName '(' hintOption [, hintOption ]* ')' + +optionKey: + simpleIdentifier + | stringLiteral + +optionVal: + stringLiteral + +hintOption: + simpleIdentifier + | numericLiteral + | stringLiteral +``` + +### Join Hints + +`Join Hints` allow users to suggest the join strategy to optimizer in order to get a more optimal execution plan. +Now Flink `Join Hints` support `BROADCAST`, `SHUFFLE_HASH`, `SHUFFLE_MERGE` and `NEST_LOOP` Join Hints. Also, for some cases, Review Comment: > If the `Join Hints` conflicts, Flink will choose the most suitable one. Done! -- 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