Changeset: a57172bfb885 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/a57172bfb885
Modified Files:
        monetdb5/optimizer/opt_emptybind.c
Branch: default
Log Message:

Push emptybind through compress and decompress calls. More improvements can be 
done here


diffs (47 lines):

diff --git a/monetdb5/optimizer/opt_emptybind.c 
b/monetdb5/optimizer/opt_emptybind.c
--- a/monetdb5/optimizer/opt_emptybind.c
+++ b/monetdb5/optimizer/opt_emptybind.c
@@ -210,18 +210,32 @@ OPTemptybindImplementation(Client cntxt,
                        }
                        continue;
                }
-               if (getModuleId(p)== algebraRef){
-                       if( getFunctionId(p) == projectionRef) {
-                               if( empty[getArg(p,1)] || empty[getArg(p,2)] ){
-                                       actions++;
-                                       emptyresult(0);
-                               }
+               if (getModuleId(p)== algebraRef && getFunctionId(p) == 
projectionRef) {
+                       if( empty[getArg(p,1)] || empty[getArg(p,2)] ){
+                               actions++;
+                               emptyresult(0);
+                       }
+               }
+               if ((getModuleId(p)== algebraRef || getModuleId(p) == dictRef) 
&& (getFunctionId(p) == thetaselectRef || getFunctionId(p) == selectRef)) {
+                       if( empty[getArg(p,1)] || empty[getArg(p,2)] ){
+                               actions++;
+                               emptyresult(0);
                        }
-                       if( getFunctionId(p) == thetaselectRef || 
getFunctionId(p) == selectRef) {
-                               if( empty[getArg(p,1)] || empty[getArg(p,2)] ){
-                                       actions++;
-                                       emptyresult(0);
-                               }
+               }
+               if (getModuleId(p) == forRef && getFunctionId(p) == 
decompressRef){
+                       if (empty[getArg(p,1)]){
+                               actions++;
+                               emptyresult(0);
+                       }
+               }
+               if (getModuleId(p) == dictRef){
+                       if (getFunctionId(p) == decompressRef && 
(empty[getArg(p,1)] || empty[getArg(p,2)])){
+                               actions++;
+                               emptyresult(0);
+                       }
+                       if (getFunctionId(p) == compressRef && 
empty[getArg(p,2)]){
+                               actions++;
+                               emptyresult(0);
                        }
                }
                if( getModuleId(p) == batstrRef){
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to