>From Wail Alkowaileet <[email protected]>:

Wail Alkowaileet has uploaded this change for review. ( 
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17758 )


Change subject: [NO ISSUE][COMP] AND SELECTs for columnar and external filters
......................................................................

[NO ISSUE][COMP] AND SELECTs for columnar and external filters

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

Details:
We should AND SELECTs instead of ORing them.
This was missed by mistake.

Change-Id: Iabbc347ae8e8db8a6d1469d436ac701fbc2c6245
---
M 
asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.025.plan
M 
asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/004/004.113.plan
M 
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/processor/ColumnFilterPushdownProcessor.java
M 
asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.025.plan
M 
asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/004/004.113.plan
5 files changed, 22 insertions(+), 5 deletions(-)



  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/58/17758/1

diff --git 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/processor/ColumnFilterPushdownProcessor.java
 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/processor/ColumnFilterPushdownProcessor.java
index 8043f32..df055295 100644
--- 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/processor/ColumnFilterPushdownProcessor.java
+++ 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/processor/ColumnFilterPushdownProcessor.java
@@ -152,7 +152,7 @@
             ILogicalExpression inlinedExpr) {
         AbstractFunctionCallExpression funcExpr = 
(AbstractFunctionCallExpression) filterExpr;
         if (!BuiltinFunctions.AND.equals(funcExpr.getFunctionIdentifier())) {
-            IFunctionInfo fInfo = 
context.getMetadataProvider().lookupFunction(AlgebricksBuiltinFunctions.OR);
+            IFunctionInfo fInfo = 
context.getMetadataProvider().lookupFunction(AlgebricksBuiltinFunctions.AND);
             List<Mutable<ILogicalExpression>> args = new ArrayList<>();
             args.add(new MutableObject<>(filterExpr));
             funcExpr = new ScalarFunctionCallExpression(fInfo, args);
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.025.plan
 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.025.plan
index b1842ca..83ace43 100644
--- 
a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.025.plan
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.025.plan
@@ -28,7 +28,7 @@
                           -- ASSIGN  |PARTITIONED|
                             exchange [cardinality: 0.0, op-cost: 0.0, 
total-cost: 0.0]
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                              data-scan []<-[$$35, $$d] <- test.ColumnDataset 
project ({a:any,array:[any]}) filter on: or(eq($$d.getField("a"), "1"), 
gt(scan-collection($$d.getField("array")), 10)) range-filter on: 
or(eq($$d.getField("a"), "1"), gt(scan-collection($$d.getField("array")), 10)) 
[cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                              data-scan []<-[$$35, $$d] <- test.ColumnDataset 
project ({a:any,array:[any]}) filter on: and(eq($$d.getField("a"), "1"), 
gt(scan-collection($$d.getField("array")), 10)) range-filter on: 
and(eq($$d.getField("a"), "1"), gt(scan-collection($$d.getField("array")), 10)) 
[cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
                               -- DATASOURCE_SCAN  |PARTITIONED|
                                 exchange [cardinality: 0.0, op-cost: 0.0, 
total-cost: 0.0]
                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/004/004.113.plan
 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/004/004.113.plan
index 012f2c7..8129cc0 100644
--- 
a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/004/004.113.plan
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/004/004.113.plan
@@ -32,7 +32,7 @@
                               -- STREAM_PROJECT  |PARTITIONED|
                                 exchange [cardinality: 0.0, op-cost: 0.0, 
total-cost: 0.0]
                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                  data-scan []<-[$$56, $$C] <- 
TestYelp.YelpCheckin project ({dates:[any],business_id:any}) filter on: 
or(starts-with($$C.getField("business_id"), "-0"), 
eq(substring(scan-collection($$C.getField("dates")), 0, 4), "2011"), 
eq(substring(scan-collection($$C.getField("dates")), 0, 4), "2016")) 
[cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                  data-scan []<-[$$56, $$C] <- 
TestYelp.YelpCheckin project ({dates:[any],business_id:any}) filter on: 
and(starts-with($$C.getField("business_id"), "-0"), 
or(eq(substring(scan-collection($$C.getField("dates")), 0, 4), "2011"), 
eq(substring(scan-collection($$C.getField("dates")), 0, 4), "2016"))) 
[cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
                                   -- DATASOURCE_SCAN  |PARTITIONED|
                                     exchange [cardinality: 0.0, op-cost: 0.0, 
total-cost: 0.0]
                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.025.plan
 
b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.025.plan
index ef44ab2..0731954 100644
--- 
a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.025.plan
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.025.plan
@@ -28,7 +28,7 @@
                           -- ASSIGN  |PARTITIONED|
                             exchange [cardinality: 6.0, op-cost: 0.0, 
total-cost: 2.0]
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                              data-scan []<-[$$35, $$d] <- test.ColumnDataset 
project ({a:any,array:[any]}) filter on: or(eq($$d.getField("a"), "1"), 
gt(scan-collection($$d.getField("array")), 10)) range-filter on: 
or(eq($$d.getField("a"), "1"), gt(scan-collection($$d.getField("array")), 10)) 
[cardinality: 6.0, op-cost: 2.0, total-cost: 2.0]
+                              data-scan []<-[$$35, $$d] <- test.ColumnDataset 
project ({a:any,array:[any]}) filter on: and(eq($$d.getField("a"), "1"), 
gt(scan-collection($$d.getField("array")), 10)) range-filter on: 
and(eq($$d.getField("a"), "1"), gt(scan-collection($$d.getField("array")), 10)) 
[cardinality: 6.0, op-cost: 2.0, total-cost: 2.0]
                               -- DATASOURCE_SCAN  |PARTITIONED|
                                 exchange [cardinality: 0.0, op-cost: 0.0, 
total-cost: 0.0]
                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/004/004.113.plan
 
b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/004/004.113.plan
index 5433b03..e40263a4 100644
--- 
a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/004/004.113.plan
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/004/004.113.plan
@@ -32,7 +32,7 @@
                               -- STREAM_PROJECT  |PARTITIONED|
                                 exchange [cardinality: 30.0, op-cost: 0.0, 
total-cost: 7.0]
                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                  data-scan []<-[$$56, $$C] <- 
TestYelp.YelpCheckin project ({dates:[any],business_id:any}) filter on: 
or(starts-with($$C.getField("business_id"), "-0"), 
eq(substring(scan-collection($$C.getField("dates")), 0, 4), "2011"), 
eq(substring(scan-collection($$C.getField("dates")), 0, 4), "2016")) 
[cardinality: 30.0, op-cost: 7.0, total-cost: 7.0]
+                                  data-scan []<-[$$56, $$C] <- 
TestYelp.YelpCheckin project ({dates:[any],business_id:any}) filter on: 
and(starts-with($$C.getField("business_id"), "-0"), 
or(eq(substring(scan-collection($$C.getField("dates")), 0, 4), "2011"), 
eq(substring(scan-collection($$C.getField("dates")), 0, 4), "2016"))) 
[cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
                                   -- DATASOURCE_SCAN  |PARTITIONED|
                                     exchange [cardinality: 0.0, op-cost: 0.0, 
total-cost: 0.0]
                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|

--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17758
To unsubscribe, or for help writing mail filters, visit 
https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: Iabbc347ae8e8db8a6d1469d436ac701fbc2c6245
Gerrit-Change-Number: 17758
Gerrit-PatchSet: 1
Gerrit-Owner: Wail Alkowaileet <[email protected]>
Gerrit-MessageType: newchange

Reply via email to