Changeset: ecdeafdb2aee for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/ecdeafdb2aee Modified Files: monetdb5/optimizer/opt_pushselect.c monetdb5/optimizer/opt_support.c monetdb5/optimizer/opt_support.h sql/backends/monet5/UDF/pyapi3/pyapi3.c Branch: Jul2021 Log Message:
Use MAL namespace string in order for call to work. Also fixed embedded python memory leak diffs (65 lines): diff --git a/monetdb5/optimizer/opt_pushselect.c b/monetdb5/optimizer/opt_pushselect.c --- a/monetdb5/optimizer/opt_pushselect.c +++ b/monetdb5/optimizer/opt_pushselect.c @@ -149,7 +149,7 @@ OPTpushselectImplementation(Client cntxt if( mb->errors) return MAL_SUCCEED; - no_mito = !isOptimizerEnabled(mb, "mitosis"); + no_mito = !isOptimizerEnabled(mb, mitosisRef); (void) stk; (void) pci; vars= (int*) GDKzalloc(sizeof(int)* mb->vtop); 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 @@ -40,7 +40,7 @@ optimizerIsApplied(MalBlkPtr mb, str opt * requires inspection of the pipeline attached to a MAL block. */ int -isOptimizerEnabled(MalBlkPtr mb, str opt) +isOptimizerEnabled(MalBlkPtr mb, const char *opt) { int i; InstrPtr q; diff --git a/monetdb5/optimizer/opt_support.h b/monetdb5/optimizer/opt_support.h --- a/monetdb5/optimizer/opt_support.h +++ b/monetdb5/optimizer/opt_support.h @@ -49,7 +49,7 @@ extern int isOrderby(InstrPtr q); extern int isSelect(InstrPtr q); extern int isSubJoin(InstrPtr q); extern int isMultiplex(InstrPtr q); -extern int isOptimizerEnabled(MalBlkPtr mb, str opt); +extern int isOptimizerEnabled(MalBlkPtr mb, const char *opt); extern int isOptimizerUsed(MalBlkPtr mb, str opt); #endif /* _OPT_SUPPORT_H */ diff --git a/sql/backends/monet5/UDF/pyapi3/pyapi3.c b/sql/backends/monet5/UDF/pyapi3/pyapi3.c --- a/sql/backends/monet5/UDF/pyapi3/pyapi3.c +++ b/sql/backends/monet5/UDF/pyapi3/pyapi3.c @@ -185,7 +185,7 @@ static str PyAPIeval(Client cntxt, MalBl int retcols; bool gstate = 0; int unnamedArgs = 0; - bool parallel_aggregation = grouped && mapped; + bool parallel_aggregation = grouped && mapped, freeexprStr = false; int argcount = pci->argc; char *eval_additional_args[] = {"_columns", "_column_types", "_conn"}; @@ -593,6 +593,7 @@ static str PyAPIeval(Client cntxt, MalBl SQLSTATE(HY013) MAL_MALLOC_FAIL " function body string."); goto wrapup; } + freeexprStr = true; if (fread(exprStr, 1, (size_t) length, fp) != (size_t) length) { msg = createException(MAL, "pyapi3.eval", SQLSTATE(PY000) "Failed to read from file \"%s\".", @@ -1342,6 +1343,8 @@ wrapup: GDKfree(args[i]); GDKfree(args); GDKfree(pycall); + if (freeexprStr) + GDKfree(exprStr); return msg; } _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list