Hi Cao.
If i guess right, what you mean is the scope that the join hint takes affect.
In your example 1, the expected result is that the hint will not takes affect
both on (t1 join t2) and (t3 join t1) if we have the sql following,
"SELECT /*+ SHUFFLE_HASH(test1) */ t1.a FROM (select test1.* from
Hi Xuyang, thanks for your explanation.
For more information about inheritPath and the logic of propagating, you
can see `RelOptUtil`. As the doc says, The hint will be propagated from the
root node to the children nodes. if we have an AST as follows:
LogicalProjectHint1[]
> +- LogicalJoin
Thanks for your attention, Li. I agree with you and Cao that in theory join
hint should support alias just like other popular computing engines and dbs.
But the main difficult is that currently, calcite will ignore the alias when
converting SqlNode to RelNode, so the information about alias will
Thanks Xuyang for driving.
zoucao also mentioned alias.
Can you explain in the FLIP why alias is not supported? What are the
difficulties and maybe we can try to overcome them. Or how do we need
to report errors if we don't support it.
Best,
Jingsong
On Mon, May 9, 2022 at 10:53 AM Xuyang wrot
Hi Xuyang, thanks for driving this valuable discussion.
I think it makes sense to improve batch processing capability for FlinkSQL.
Using Query hints can make the optimization more flexible and accurate.
After going through the design doc, I have some confusion maybe you can
help to clarify.
First
Hi Xuyang,
Thanks for starting this discussion. Join Hint is a long-time requested
feature.
I have briefly gone through the design doc. Join Hint is a public API for
SQL syntax.
It should work for both streaming and batch SQL. I understand some special
hints
may only work for batch SQL. Could you