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

Julian Hyde commented on CALCITE-3769:
--------------------------------------

I don't think they're the same:
* Danny's change would not affect behavior (except for some changes to how 
tests are set up) whereas the RexNode change would.
* I'm not convinced that we even know what behavior we want to RexNode. In my 
experience, there is no one single 'normal form', but you have to use different 
normal forms for different purposes. Therefore I expect us to change the logs 
(and users' plans) once, and then have to do it one or more times in the future.
* Danny's change is a refactoring to break up complexity that has accrued over 
time.

You are accusing reviewers of having double standards. We, or at least I, are 
reviewing both changes in good faith.

If we don't agree with your change, please don't accuse us of bad faith. It 
drags everything down.

> 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 10m
>  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