Thanks for continuing to push on this! I don’t much like the MSSQL-style syntax for table hints. It adds a new use of the WITH keyword that is unrelated to the use of WITH for common-table expressions. Instead of
select /*+ NO_HASH_JOIN, RESOURCE(mem='128mb', parallelism='24') */ from emp with (INDEX(idx1, idx2)) join dept with (PROPERTIES(k1='v1', k2='v2')) on emp.deptno = dept.deptno could we do select /*+ NO_HASH_JOIN, RESOURCE(mem='128mb', parallelism='24') */ from emp /*+ INDEX(idx1, idx2) */ join dept /*+ PROPERTIES(k1='v1', k2='v2’) */ on emp.deptno = dept.deptno In some of the classes you have public fields of type ImmutableList. This makes it difficult to coexist in an environment that uses a different version of Guava, or shades Guava. Probably better to make them of type List. (You don’t need to change ImmutableBitSet; it’s not a Guava class.) There is one argument where a List<Integer> is assigned to an ImmutableBitSet. Make it an Iterable<Integer>, and people can pass in an existing ImmutableBitSet without copying. Julian > On Sep 3, 2019, at 1:18 AM, Danny Chan <[email protected]> wrote: > > Hi, fellows, I’m here again :) > > This time I want to have a full discussion about CALCITE-482, which is an > issue fired at 27/Nov/14 by Vladimir Sitnikov. > > Almost every sql vendor supports sql hint for their production version DB > engines, so it would be nice if we have a framework in Calcite to support > this, so that the engines that built based on CALCITE would have the ability > to extend and have their custom sql hint implementations. > > In April this year I have fired an initial discussion about this topic[1], > and I’m glad that we have some agreements for the design. > > Recently I have fired a PR[3] and write a design doc[2] mostly based on the > discussion[1], so feel free to give some feedback here so we can make the > hint framework more flexible. > > Any suggestions are appreciated. > > > [1] > https://lists.apache.org/[email protected]:dfr=2019-4-1|dto=2019-4-30:How%20to%20traverse > [2] > https://docs.google.com/document/d/1mykz-w2t1Yw7CH6NjUWpWqCAf_6YNKxSc59gXafrNCs/edit?usp=sharing > [3] https://github.com/apache/calcite/pull/1354 > > Best, > Danny Chan
