[ 
https://issues.apache.org/jira/browse/CALCITE-3769?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17048490#comment-17048490
 ] 

Stamatis Zampetakis commented on CALCITE-3769:
----------------------------------------------

Thanks for your patience [~danny0405]!

Please help me clarify if the following example is valid: For simplicity let's 
assume that there is a client who has only ScannableTables in the schema and a 
ruleset with only Enumerable rules. Before the change the final plan would 
contain exclusively Enumerable operators. After this change all the query plans 
(that were possibly verified by unit tests) are different and have a 
combination of EnumerableInterpreter + BindableTableScan in the bottom.

If what I described above holds how can somebody restore the previous behavior?

  

> Deprecate TableScanRule
> -----------------------
>
>                 Key: CALCITE-3769
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3769
>             Project: Calcite
>          Issue Type: Wish
>          Components: core
>    Affects Versions: 1.21.0
>            Reporter: Danny Chen
>            Assignee: Danny Chen
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.22.0
>
>          Time Spent: 1h 20m
>  Remaining Estimate: 0h
>
> The TableScanRule is the only planner rule that for a logical node(e.g. the 
> table scan), its function is to pass along the cluster object and invoke the 
> RelOptTable#toRel which is very trivial because it supplies only a simple 
> ToRelContext that does not support expanding view/passing table hints.
> For rels that come from the sql-to-rel conversion, there is already a table 
> conversion logic[1]. This code gives a more powerful ToRelContext that has 
> the complete functionality.
> The only reason that I saw the meaning of existing TableScanRule is for the 
> TableScan that comes from the RelBuilder#scan.
> So I would suggest to deprecate the TableScanRule, instead, we support 
> translating the table directly in RelBuilder#scan,
> -We also add a new interface RelBuilder#scan(Iterable<String> tableNames, 
> ToRelContext context), so that user can pass in a more powerful ToRelContext 
> explicitly.- User can customize a TableScanFactory in the RelBuilder to do 
> this.
> [1] 
> https://github.com/apache/calcite/blob/d6fa25cd11625ad7b4b74dafbd0211c701b38d49/core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java#L3498



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to