[
https://issues.apache.org/jira/browse/CALCITE-3769?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17048345#comment-17048345
]
Stamatis Zampetakis commented on CALCITE-3769:
----------------------------------------------
I am sorry but I am still missing some context, I guess because I didn't
encounter the problems that you did during the refactoring.
If I recall well the EnumerableTableScan can handle FilterableTable,
ProjectableFilterableTable, ScannableTable and so does BindableTableScan. Thus,
I would assume that EnumerableTableScanRule can produce an EnumerableTableScan
with the aforementioned tables and the same holds for the
BindableTableScanRule. From the current changes it seems that we will never
introduce an EnumerableTableScan for a FilterableTable,
ProjectableFilterableTable, or ScannableTable, is that right?
> 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)