Changeset: de6da0c6f6a4 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=de6da0c6f6a4
Modified Files:
        monetdb5/extras/pyapi/pyapi.mal
        monetdb5/optimizer/opt_mitosis.c
        monetdb5/optimizer/opt_prelude.c
        monetdb5/optimizer/opt_prelude.h
        monetdb5/optimizer/opt_support.c
        sql/backends/monet5/Tests/pyapi23.stable.out
Branch: pythonudf
Log Message:

don't use mitosis on pyapi.subeval_aggr


diffs (82 lines):

diff --git a/monetdb5/extras/pyapi/pyapi.mal b/monetdb5/extras/pyapi/pyapi.mal
--- a/monetdb5/extras/pyapi/pyapi.mal
+++ b/monetdb5/extras/pyapi/pyapi.mal
@@ -44,8 +44,6 @@ pattern eval_aggr(fptr:ptr,expr:str,arg:
 address PyAPIevalAggr
 comment "grouped aggregates through Python";
 
-
-
 module pyapimap;
 
 # The generic Python interface
diff --git a/monetdb5/optimizer/opt_mitosis.c b/monetdb5/optimizer/opt_mitosis.c
--- a/monetdb5/optimizer/opt_mitosis.c
+++ b/monetdb5/optimizer/opt_mitosis.c
@@ -76,7 +76,7 @@ OPTmitosisImplementation(Client cntxt, M
                        getFunctionId(p) != subprodRef)
                        return 0;
 
-               if (p->argc > 2 && getModuleId(p) == rapiRef && 
+               if (p->argc > 2 && (getModuleId(p) == rapiRef || getModuleId(p) 
== pyapiRef) && 
                        getFunctionId(p) == subeval_aggrRef)
                        return 0;
 
diff --git a/monetdb5/optimizer/opt_prelude.c b/monetdb5/optimizer/opt_prelude.c
--- a/monetdb5/optimizer/opt_prelude.c
+++ b/monetdb5/optimizer/opt_prelude.c
@@ -174,6 +174,7 @@ str queryRef;
 str rapiRef;
 str batrapiRef;
 str pyapiRef;
+str batpyapiRef;
 str pyapimapRef;
 str subeval_aggrRef;
 str rankRef;
@@ -387,7 +388,8 @@ void optimizerInit(void)
        queryRef = putName("query",5);
        rapiRef = putName("rapi", 4);
        batrapiRef = putName("batrapi", 7);
-       pyapiRef = putName("batpyapi", 8);
+       pyapiRef = putName("pyapi", 5);
+       batpyapiRef = putName("batpyapi", 8);
        pyapimapRef = putName("batpyapimap", 11);
        subeval_aggrRef = putName("subeval_aggr", 12);
        rankRef = putName("rank", 4);
diff --git a/monetdb5/optimizer/opt_prelude.h b/monetdb5/optimizer/opt_prelude.h
--- a/monetdb5/optimizer/opt_prelude.h
+++ b/monetdb5/optimizer/opt_prelude.h
@@ -167,6 +167,7 @@ opt_export  str queryRef;
 opt_export  str rapiRef;
 opt_export  str batrapiRef;
 opt_export  str pyapiRef;
+opt_export  str batpyapiRef;
 opt_export  str pyapimapRef;
 opt_export  str subeval_aggrRef;
 opt_export  str rankRef;
diff --git a/monetdb5/optimizer/opt_support.c b/monetdb5/optimizer/opt_support.c
--- a/monetdb5/optimizer/opt_support.c
+++ b/monetdb5/optimizer/opt_support.c
@@ -660,7 +660,7 @@ int isMapOp(InstrPtr p){
                 (getModuleId(p) != batcalcRef && getModuleId(p) != batRef && 
strncmp(getModuleId(p), "bat", 3) == 0) ||
                 (getModuleId(p) == mkeyRef)) && !isOrderDepenent(p) &&
                 getModuleId(p) != batrapiRef &&
-                getModuleId(p) != pyapiRef;
+                getModuleId(p) != batpyapiRef;
 }
 
 int isLikeOp(InstrPtr p){
diff --git a/sql/backends/monet5/Tests/pyapi23.stable.out 
b/sql/backends/monet5/Tests/pyapi23.stable.out
--- a/sql/backends/monet5/Tests/pyapi23.stable.out
+++ b/sql/backends/monet5/Tests/pyapi23.stable.out
@@ -55,8 +55,8 @@ Ready.
 % 1,   3 # length
 [ 0,   100     ]
 [ 1,   100     ]
-#select g, pyapi23(n) from pyapi23datagen() group by g;
-% .L,  .L1 # table_name
+#select g, pyapi23(n) from pyapi23table group by g;
+% sys.pyapi23table,    sys.L1 # table_name
 % g,   L1 # name
 % int, int # type
 % 1,   3 # length
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to