[NO ISSUE][COMP] Use data-scan select condition in filters

- user model changes: no
- storage format changes: no
- interface changes: no

Details:
Allow pushed filter in data-scan to utilize columnar
and external filters.

Change-Id: Iedee5e54bb0344616589076ea3ed65cded6c9b5a
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17811
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Wail Alkowaileet <wael.y.k@gmail.com>
Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/processor/AbstractFilterPushdownProcessor.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/processor/AbstractFilterPushdownProcessor.java
index 4a1f156..6ca553a 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/processor/AbstractFilterPushdownProcessor.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/processor/AbstractFilterPushdownProcessor.java
@@ -129,7 +129,9 @@
              */
             ILogicalOperator useOperator = useDescriptor.getOperator();
             if (useDescriptor.getScope() == scanDefineDescriptor.getScope()
-                    && useOperator.getOperatorTag() == LogicalOperatorTag.SELECT && isPushdownAllowed(useOperator)) {
+                    && (useOperator.getOperatorTag() == LogicalOperatorTag.SELECT
+                            || useOperator.getOperatorTag() == LogicalOperatorTag.DATASOURCESCAN)
+                    && isPushdownAllowed(useOperator)) {
                 inlineAndPushdownFilter(useDescriptor, scanDefineDescriptor);
             } else if (useOperator.getOperatorTag() == LogicalOperatorTag.INNERJOIN) {
                 inlineAndPushdownFilter(useDescriptor, scanDefineDescriptor);