You should enable Calcite plan debugging. The instructions can be found by looking at the historical version of the Calcite howto before the logging framework changed in 1.5. [1] tracing section.
Couple possibilities are you are not calculating distinct digests for your scan or your costs aren't right. [1] https://github.com/apache/calcite/blob/999021115689521694754d1c766feda6da467e8d/site/_docs/howto.md On Apr 4, 2016 9:55 PM, "Lee Butts" <[email protected]> wrote: > > Hi, > > I'm trying to add some custom optimizer rules for my storage format plugin > and am having trouble understanding the process the query planner goes > through when building logical and physical query plans. > > What I'd like to do is the following: > > 1) Add a rule which matches all filters and collects some information about > restrictions being put on a known column (call it T). This rule does not > change any nodes in the logical or physical plan > > 2) Add a second rule which uses the information collected by rule #1 and > modifies all scan operations by changing the file paths that will be > scanned. In this rule I want to append some information to the path that my > new record reader can use to be smarter about how much data it reads from > the given file. This rule would replace all Scan (or DrillScan? Not sure > which one is correct) nodes with modified versions referencing the modified > GroupScan. > > What I'm finding is that my rules are matching and the calls to > transformTo() are executing but for some reason a plan with the original > Scan objects is being picked as the cheapest and my reader does not > received my modified GroupScan info. > > Am I going about this all wrong? Is there an easier way for me to pass > information from the where clause out to a record reader via some other > context object? > > cheers > > Lee > > [image: MahiFX] <https://mahifx.com/> > > Lee Butts > Technology > Level 3, 50 Victoria Street > Christchurch 8013 > New Zealand > Mobile: +64 226 908315 > Skype: leemahifx > > <https://www.facebook.com/mahifx> <https://twitter.com/mahiforex> > <https://www.youtube.com/channel/UCxCiKv8XEM8GATA8kFFqsAw> > <https://www.linkedin.com/company/mahifx> > <https://mahifx.com/blog/feed.xml> < https://plus.google.com/+Mahifx/posts> > > > [image: MFX Compass] <http://mfxcompass.mahifx.com/> > > -- > > > ------------------------------ > > *IMPORTANT NOTICE*: MahiFX Limited (*MahiFX*), (company no. 2446590) is > registered in New Zealand. MahiFX is authorised and regulated by the > Australian Securities and Investment Commission ARBN 152 535 085, AFSL > 414198. This email, its attachments and any rights attaching hereto are > confidential and intended exclusively for the person to whom the email is > addressed. If you are not the intended recipient, do not read, copy, > disclose or use the contents in any way. Please notify the sender by return > email and destroy the email and attachments immediately. MahiFX does not > accept any liability for any changes made to this email or attachments > after sending by MahiFX. You must scan this email and attachments for > viruses. The opinions expressed are not necessarily those of MahiFX. MahiFX > accepts no liability for any loss, damage or consequence, whether caused by > our own negligence or not, resulting directly or indirectly from the use of > this email and attachments. > > For more information about MahiFX Limited see mahifx.com.
