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
-
-}