Changeset: 2417ebe8a393 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/2417ebe8a393
Modified Files:
monetdb5/extras/rapi/rapi.c
sql/backends/monet5/UDF/pyapi3/pyapi3.c
Branch: Jan2022
Log Message:
Fix some bat leaks.
diffs (60 lines):
diff --git a/monetdb5/extras/rapi/rapi.c b/monetdb5/extras/rapi/rapi.c
--- a/monetdb5/extras/rapi/rapi.c
+++ b/monetdb5/extras/rapi/rapi.c
@@ -119,7 +119,6 @@
prev = *p;
\
}
\
BATsetcount(b, cnt);
\
- BATsettrivprop(b);
\
} while (0)
// DATE epoch differs betwen MonetDB (00-01-01) and R (1970-01-01)
@@ -340,6 +339,7 @@ static BAT* sexp_to_bat(SEXP s, int type
}
}
}
+ BATsetcount(b, cnt);
break;
}
default:
@@ -351,10 +351,6 @@ static BAT* sexp_to_bat(SEXP s, int type
}
}
- if (b) {
- BATsetcount(b, cnt);
- BBPkeepref(b->batCacheid);
- }
return b;
}
@@ -821,6 +817,7 @@ static str RAPIeval(Client cntxt, MalBlk
// bat return
if (isaBatType(getArgType(mb,pci,i))) {
*getArgReference_bat(stk, pci, i) = b->batCacheid;
+ BBPkeepref(b->batCacheid);
} else { // single value return, only for non-grouped
aggregations
BATiter li = bat_iterator(b);
if (VALinit(&stk->stk[pci->argv[i]], bat_type,
@@ -830,6 +827,7 @@ static str RAPIeval(Client cntxt, MalBlk
goto wrapup;
}
bat_iterator_end(&li);
+ BBPunfix(b->batCacheid);
}
msg = MAL_SUCCEED;
}
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
@@ -1239,6 +1239,10 @@ returnvalues:
msg = createException(MAL,
"pyapi3.eval", SQLSTATE(HY013) MAL_MALLOC_FAIL);
}
bat_iterator_end(&li);
+ BBPunfix(b->batCacheid);
+ b = NULL;
+ if (msg != MAL_SUCCEED)
+ goto wrapup;
}
if (argnode) {
argnode = argnode->next;
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]