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