Changeset: afedb69bc1e7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/afedb69bc1e7
Modified Files:
sql/backends/monet5/generator/generator.c
Branch: Jul2021
Log Message:
Don't leak result bat on error
diffs (53 lines):
diff --git a/sql/backends/monet5/generator/generator.c
b/sql/backends/monet5/generator/generator.c
--- a/sql/backends/monet5/generator/generator.c
+++ b/sql/backends/monet5/generator/generator.c
@@ -574,7 +574,7 @@ str VLTgenerator_thetasubselect(Client c
BUN cap,j;
oid o = 0;
InstrPtr p;
- str oper, msg= MAL_SUCCEED;
+ str oper;
(void) cntxt;
p = findGeneratorDefinition(mb,pci,pci->argv[1]);
@@ -685,8 +685,10 @@ str VLTgenerator_thetasubselect(Client c
}
val = timestamp_add_usec(val, s);
if (is_timestamp_nil(val)) {
- msg = createException(MAL,
"generator.thetaselect", SQLSTATE(22003) "overflow in calculation");
- goto wrapup;
+ if (cand)
+ BBPunfix(cand->batCacheid);
+ BBPreclaim(bn);
+ throw(MAL, "generator.thetaselect",
SQLSTATE(22003) "overflow in calculation");
}
}
} else {
@@ -696,19 +698,16 @@ str VLTgenerator_thetasubselect(Client c
}
}
-wrapup:
if( cndid)
BBPunfix(cndid);
- if( bn){
- bn->tsorted = true;
- bn->trevsorted = false;
- bn->tkey = true;
- bn->tnil = false;
- bn->tnonil = true;
- BATsetcount(bn,c);
- BBPkeepref(*getArgReference_bat(stk,pci,0)= bn->batCacheid);
- }
- return msg;
+ bn->tsorted = true;
+ bn->trevsorted = false;
+ bn->tkey = true;
+ bn->tnil = false;
+ bn->tnonil = true;
+ BATsetcount(bn,c);
+ BBPkeepref(*getArgReference_bat(stk,pci,0)= bn->batCacheid);
+ return MAL_SUCCEED;
}
#define VLTprojection(TPE)
\
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list