[
https://issues.apache.org/jira/browse/FLINK-20719?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated FLINK-20719:
-----------------------------------
Labels: pull-request-available (was: )
> Change BatchExecNode & StreamExecNode to interface and make each node
> extended from ExecNodeBase directly
> ---------------------------------------------------------------------------------------------------------
>
> Key: FLINK-20719
> URL: https://issues.apache.org/jira/browse/FLINK-20719
> Project: Flink
> Issue Type: Sub-task
> Components: Table SQL / Planner
> Reporter: godfrey he
> Assignee: godfrey he
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.13.0
>
>
> Currently the inheritance structure of exec nodes is:
> {code:java}
> ExecNode (interface)
> |_ ExecNodeBase (abstract class)
> |_ BatchExecNode (abstract class)
> |_ BatchExecCalc
> |_ ...
> |_ StreamExecNode (abstract class)
> |_ StreamExecCalc
> |_ ...
> {code}
> the advantage is: each specific node only needs to inherit one base class,
> and BatchExecNode and StreamExecNode can provide some default implementation
> the disadvantage is: common class of specific batch node and stream node must
> be interface which only can provide some utility method through default
> implementation and its sub-classes also have some deduplicate code. if the
> common class can be abstract class, its sub-classes is cleaner. such as:
> Calc classes
> the structure after adjustment is:
> {code:java}
> ExecNode (interface)
> |_ ExecNodeBase (abstract class)
> |_ BatchExecNode (interface)
> |_ StreamExecNode (interface)
> class BatchExecCalc extends ExecNodeBase implements BatchExecNode
> ...
> class StreamExecCalc extends ExecNodeBase implements StreamExecNode
> ...
> {code}
> the advantage is: common class can be abstract class, its sub-classes will be
> cleaner; we can add some specific method definition in BatchExecNode and
> StreamExecNode, which is more extendable.
> the disadvantage is: each specific node must extend from both ExecNodeBase
> and Batch(/Stream)ExecNode.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)