You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by ku...@apache.org on 2019/06/17 03:28:26 UTC
[flink] branch master updated: [FLINK-12857][table-common] move
FilterableTableSource into flink-table-common
This is an automated email from the ASF dual-hosted git repository.
kurt pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/master by this push:
new 9f8f899 [FLINK-12857][table-common] move FilterableTableSource into flink-table-common
9f8f899 is described below
commit 9f8f89923e96286275ba3fb259ec450baaa4f7c0
Author: godfrey he <go...@163.com>
AuthorDate: Mon Jun 17 11:28:11 2019 +0800
[FLINK-12857][table-common] move FilterableTableSource into flink-table-common
This closes #8748
---
.../flink/table/sources/FilterableTableSource.java | 58 ++++++++++++++++++++++
.../table/sources/FilterableTableSource.scala | 58 ----------------------
2 files changed, 58 insertions(+), 58 deletions(-)
diff --git a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/sources/FilterableTableSource.java b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/sources/FilterableTableSource.java
new file mode 100644
index 0000000..fc144d5
--- /dev/null
+++ b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/sources/FilterableTableSource.java
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.flink.table.sources;
+
+import org.apache.flink.table.expressions.Expression;
+
+import java.util.List;
+
+/**
+ * Adds support for filtering push-down to a {@link TableSource}.
+ * A {@link TableSource} extending this interface is able to filter records before returning.
+ */
+public interface FilterableTableSource<T> {
+
+ /**
+ * Check and pick all predicates this table source can support. The passed in predicates
+ * have been translated in conjunctive form, and table source can only pick those predicates
+ * that it supports.
+ *
+ * <p>After trying to push predicates down, we should return a new {@link TableSource}
+ * instance which holds all pushed down predicates. Even if we actually pushed nothing down,
+ * it is recommended that we still return a new {@link TableSource} instance since we will
+ * mark the returned instance as filter push down has been tried.
+ *
+ * <p>We also should note to not changing the form of the predicates passed in. It has been
+ * organized in CNF conjunctive form, and we should only take or leave each element from the
+ * list. Don't try to reorganize the predicates if you are absolutely confident with that.
+ *
+ * @param predicates A list contains conjunctive predicates, you should pick and remove all
+ * expressions that can be pushed down. The remaining elements of this list
+ * will further evaluated by framework.
+ * @return A new cloned instance of {@link TableSource} with or without any filters been
+ * pushed into it.
+ */
+ TableSource<T> applyPredicate(List<Expression> predicates);
+
+ /**
+ * Return the flag to indicate whether filter push down has been tried.
+ * Must return true on the returned instance of {@link #applyPredicate}.
+ */
+ boolean isFilterPushedDown();
+}
diff --git a/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/sources/FilterableTableSource.scala b/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/sources/FilterableTableSource.scala
deleted file mode 100644
index 67529a7..0000000
--- a/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/sources/FilterableTableSource.scala
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.flink.table.sources
-
-import java.util.{List => JList}
-
-import org.apache.flink.table.expressions.Expression
-/**
- * Adds support for filtering push-down to a [[TableSource]].
- * A [[TableSource]] extending this interface is able to filter records before returning.
- */
-trait FilterableTableSource[T] {
-
- /**
- * Check and pick all predicates this table source can support. The passed in predicates
- * have been translated in conjunctive form, and table source can only pick those predicates
- * that it supports.
- * <p>
- * After trying to push predicates down, we should return a new [[TableSource]]
- * instance which holds all pushed down predicates. Even if we actually pushed nothing down,
- * it is recommended that we still return a new [[TableSource]] instance since we will
- * mark the returned instance as filter push down has been tried.
- * <p>
- * We also should note to not changing the form of the predicates passed in. It has been
- * organized in CNF conjunctive form, and we should only take or leave each element from the
- * list. Don't try to reorganize the predicates if you are absolutely confident with that.
- *
- * @param predicates A list contains conjunctive predicates, you should pick and remove all
- * expressions that can be pushed down. The remaining elements of this list
- * will further evaluated by framework.
- * @return A new cloned instance of [[TableSource]] with or without any filters been
- * pushed into it.
- */
- def applyPredicate(predicates: JList[Expression]): TableSource[T]
-
- /**
- * Return the flag to indicate whether filter push down has been tried. Must return true on
- * the returned instance of [[applyPredicate]].
- */
- def isFilterPushedDown: Boolean
-
-}