Hi Ivan, I don't think it is possible to tell Volcano to ignore some schemas during optimisation. You could potentially avoid to generate plans on the original schema by setting the statistics (rowcount) of base tables (in that Schema) to very big values.
Regarding 3, I guess it is possible but maybe you could have to instantiate manually some Calcite primitives (HepPlanner, VolcanoPlanner, etc.). See [1] for some ideas on how various Calcite APIs blend together. Best, Stamatis [1] https://github.com/zabetak/calcite/blob/livecodingdemo/core/src/test/java/org/apache/calcite/examples/foodmart/java/EndToEndExampleEnumerable.java On Tue, May 14, 2019 at 4:41 PM Ivan Grgurina <[email protected]> wrote: > Resending > > > > > ________________________________ > From: Ivan Grgurina <[email protected]> > Sent: Tuesday, May 14, 2019 1:52 PM > To: [email protected] > Subject: Placeholder schema for Volcano planner > > Hi everyone, I've managed to make some progress on my master thesis project > since last time we spoke [1]. I used a model.json configuration custom > schema factory to add rules and that worked, rules got executed, just not > chosen as the best option. You can find the code here: [2]. Now my > questions are: > > 1) Can I tell Volcano planner to ignore 1 out of 3 schemas that I passed > through custom JDBC SchemaFactory? > > *I want parser to work on that 1 original schema*, but for the planner to > never suggest an optimal (cheapest) plan in that schema (only other 2 > derived schemas). 1 original schema is always mapped 1-to-1 with other 2 > derived schemas, so the RelNode that my rule returns is always semantically > equivalent, just more expensive (security reasons). > > 2) If that can't work, how can I call HepPlanner instead of default Volcano > planner *from SchemaFactory *that is set in model.json, since that's my > starting point? > > 3) Ideally, I would have HepPlanner execute my rules that transform them to > semantically equivalent expressions that use 2 derived schemas instead of 1 > original schema (I have a rules that do that), and then have Volcano > planner optimize that using *only* 2 derived schemas, without having an > idea that 1 original schema exists, due to security reasons. > > Unfortunately, I have no idea how to do that. Any help would be appreciated > :) > > [1] > > http://mail-archives.apache.org/mod_mbox/calcite-dev/201905.mbox/%3cam6pr08mb5061442901dbfe49ed43329a92...@am6pr08mb5061.eurprd08.prod.outlook.com%3E > [2] https://github.com/igrgurina/multicloud_rewriter >
