flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hequn Cheng (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLINK-11068) Convert the API classes *Table, *Window to interfaces
Date Wed, 13 Mar 2019 15:06:00 GMT

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

Hequn Cheng commented on FLINK-11068:
-------------------------------------

Hi [~twalthr], Great to have your suggestions. Thanks for merging the FLINK-11449 and the
great work. (y) 

I think it is good to open a separate PR for porting the windows and fix the GroupWindow
issue in it in a backward compatible way. I will start a new jira and open a PR on it soon.

One thing need to confirm with you is I find {{ExpressionParser}} is used in {{TumbleWithSize}}
which make it hard to port {{TumbleWithSize}} directly into the api-java module. As a choice,
I think we can convert it into an interface and use reflection to cerate the {{TumbleWithSizeImpl}}
in Tumble.over(). The code may looks like:
{code:java}
@PublicEvolving
public class Tumble {
	public static TumbleWithSize over(String size) {
		try {
			Class clazz = Class.forName("org.apache.flink.table.api.TumbleWithSizeImpl");
			Constructor con = clazz.getConstructor(String.class);
			return (TumbleWithSize) con.newInstance(size);
		} catch (Throwable t) {
			throw new TableException("New TumbleWithSizeImpl class failed.", t);
		}
	}
}
{code}

What do you think?

> Convert the API classes *Table, *Window to interfaces
> -----------------------------------------------------
>
>                 Key: FLINK-11068
>                 URL: https://issues.apache.org/jira/browse/FLINK-11068
>             Project: Flink
>          Issue Type: Improvement
>          Components: API / Table SQL
>            Reporter: Timo Walther
>            Assignee: Hequn Cheng
>            Priority: Major
>
> A more detailed description can be found in [FLIP-32|https://cwiki.apache.org/confluence/display/FLINK/FLIP-32%3A+Restructure+flink-table+for+future+contributions].
> This includes: Table, GroupedTable, WindowedTable, WindowGroupedTable, OverWindowedTable,
Window, OverWindow
> We can keep the "Table" Scala implementation in a planner module until it has been converted
to Java.
> We can add a method to the planner later to give us a concrete instance. This is one
possibility to have a smooth transition period instead of changing all classes at once.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message