Hi Tian,

To inject statistics, you need to implement your own RelMetadataProvider
and register it into your runtime environment.

I'm not able to find a valid example in Calcite, but there is a good
example you can find in Drill
https://github.com/apache/drill/blob/master/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/DefaultSqlHandler.java#L405
.


On Mon, Nov 5, 2018 at 11:54 AM Tian Ye <[email protected]> wrote:

> Hi,
>
> I'm working on comparing the query plan generated by Calcite with that
> from a DBMS I'm developing.
>
> In particular, I can generate some TPC-H data and a SQL query, and I want
> to let Calcite generate as good query plan as it can. So far, I haven't
> passed any statistics to Calcite, so the query plan it generates is just a
> baseline.
>
> Now I wonder how I could pass statistics to Calcite. What I don't
> understand is that since Calcite does not load the data until query plan is
> actually executed, how could I pass statistics to it?
> I fail to find any document talking about how to do that in detail. The
> last paragraphs of  http://calcite.apache.org/docs/adapter.html do
> mention it but are not so clear.
>
>
>
>
> Would you please help me?
>
> Thanks a lot.
>
>
>
>
> --------
> Tian Ye
> [email protected]

Reply via email to