This is an automated email from the ASF dual-hosted git repository.

wyk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git


The following commit(s) were added to refs/heads/master by this push:
     new 85fbec0de1 [NO ISSUE][COMP] Use data-scan select condition in filters
85fbec0de1 is described below

commit 85fbec0de1c6a0d4d133ae1b4ab40729243775d5
Author: Wail Alkowaileet <[email protected]>
AuthorDate: Tue Sep 26 09:42:50 2023 -1000

    [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 <[email protected]>
    Tested-by: Jenkins <[email protected]>
    Reviewed-by: Wail Alkowaileet <[email protected]>
    Reviewed-by: Ali Alsuliman <[email protected]>
---
 .../rules/pushdown/processor/AbstractFilterPushdownProcessor.java     | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

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 4a1f156c1c..6ca553a69e 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 @@ abstract class AbstractFilterPushdownProcessor extends 
AbstractPushdownProcessor
              */
             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);

Reply via email to