flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kurt Young (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (FLINK-5185) Decouple BatchTableSourceScan with TableSourceTable
Date Tue, 29 Nov 2016 07:33:59 GMT

     [ https://issues.apache.org/jira/browse/FLINK-5185?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Kurt Young updated FLINK-5185:
------------------------------
    Description: 
As the components' relationship show in this design doc:
https://docs.google.com/document/d/1PBnEbOcFHlEF1qGGAUgJvINdEXzzFTIRElgvs4-Tdeo/
We found it's been annoying for {{BatchTableSourceScan}} directly holding {{TableSourceTable}},
and refer to {{TableSource}} further. It's ok if the relationship is immutable, but when we
want to change the {{TableSource}} when applying optimizations, it will cause some conflicts
and misunderstanding. 

Since there is only one way to change {{TableSource}}, which is creating a new {{TableSourceTable}}
to hold the new {{TableSource}}, and create a new {{BatchTableSourceScan}} pointing to the
{{TableSourceTable}} which just created. The annoying part is the {{RelOptTable}} comes from
the super class {{TableScan}} still holds the connection to the original {{TableSourceTable}}
and {{TableSource}}. It will cause some misunderstanding, which one should the {{Scan}} rely
to, and what's difference between these tables. 

Besides, {{TableSourceTable}} is not very useful in {{BatchTableSourceScan}}, the only thing
{{Scan}} cares is the {{RowType}} it returns, since this is and should be decided by {{TableSource}}.
So we can let {{BatchTableSourceScan}} directly holding {{TableSource}} instead of holding
{{TableSourceTable}}.If some original information are needed, find table through {{RelOptTable}}.



  was:
As the components' relationship show in this design doc:
https://docs.google.com/document/d/1PBnEbOcFHlEF1qGGAUgJvINdEXzzFTIRElgvs4-Tdeo/
We found it's been annoying for {{BatchTableSourceScan}} directly holding {{TableSourceTable}},
and refer to {{TableSource}} further. It's ok if the relationship is immutable, but when we
want to change the {{TableSource}} when applying optimizations, it will cause some conflicts
and misunderstanding. 

Since there is only one way to change {{TableSource}}, which is creating a new {{TableSourceTable}}
to hold the new {{TableSource}}, and create a new {{BatchTableSourceScan}} pointing to that
{{TableSourceTable}} which just created. The annoying part is the {{RelOptTable}} comes from
the super class {{TableScan}} still holds the connection to the original {{TableSourceTable}}
and {{TableSource}}. It will cause some misunderstanding, which one should the {{Scan}} rely
to, and what's difference between these tables. 

Besides, {{TableSourceTable}} is not very useful in {{BatchTableSourceScan}}, the only thing
{{Scan}} cares is the {{RowType}} it returns, since this is and should be decided by {{TableSource}}.
So we can let {{BatchTableSourceScan}} directly holding {{TableSource}} instead of holding
{{TableSourceTable}}.If some original information are needed, find table through {{RelOptTable}}.




> Decouple BatchTableSourceScan with TableSourceTable
> ---------------------------------------------------
>
>                 Key: FLINK-5185
>                 URL: https://issues.apache.org/jira/browse/FLINK-5185
>             Project: Flink
>          Issue Type: Improvement
>          Components: Table API & SQL
>    Affects Versions: 1.2.0
>            Reporter: Kurt Young
>            Assignee: zhangjing
>            Priority: Minor
>
> As the components' relationship show in this design doc:
> https://docs.google.com/document/d/1PBnEbOcFHlEF1qGGAUgJvINdEXzzFTIRElgvs4-Tdeo/
> We found it's been annoying for {{BatchTableSourceScan}} directly holding {{TableSourceTable}},
and refer to {{TableSource}} further. It's ok if the relationship is immutable, but when we
want to change the {{TableSource}} when applying optimizations, it will cause some conflicts
and misunderstanding. 
> Since there is only one way to change {{TableSource}}, which is creating a new {{TableSourceTable}}
to hold the new {{TableSource}}, and create a new {{BatchTableSourceScan}} pointing to the
{{TableSourceTable}} which just created. The annoying part is the {{RelOptTable}} comes from
the super class {{TableScan}} still holds the connection to the original {{TableSourceTable}}
and {{TableSource}}. It will cause some misunderstanding, which one should the {{Scan}} rely
to, and what's difference between these tables. 
> Besides, {{TableSourceTable}} is not very useful in {{BatchTableSourceScan}}, the only
thing {{Scan}} cares is the {{RowType}} it returns, since this is and should be decided by
{{TableSource}}. So we can let {{BatchTableSourceScan}} directly holding {{TableSource}} instead
of holding {{TableSourceTable}}.If some original information are needed, find table through
{{RelOptTable}}. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message