Changeset: d4d8d592e1f7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/d4d8d592e1f7
Modified Files:
monetdb5/modules/mal/batMask.c
sql/storage/bat/bat_table.c
sql/storage/bat/res_table.c
Branch: Jul2021
Log Message:
Adding missing unfixes
diffs (88 lines):
diff --git a/monetdb5/modules/mal/batMask.c b/monetdb5/modules/mal/batMask.c
--- a/monetdb5/modules/mal/batMask.c
+++ b/monetdb5/modules/mal/batMask.c
@@ -108,10 +108,10 @@ MSKumask(Client cntxt, MalBlkPtr mb, Mal
BBPunfix(b->batCacheid);
throw(MAL, "mask.umask", SQLSTATE(42000) "msk type input
expected");
}
- if ((dst = BATunmask(b)) == NULL) {
- BBPunfix(b->batCacheid);
+ dst = BATunmask(b);
+ BBPunfix(b->batCacheid);
+ if (dst == NULL)
throw(MAL, "mask.umask", GDK_EXCEPTION);
- }
*ret= dst->batCacheid;
BBPkeepref(*ret);
return MAL_SUCCEED;
diff --git a/sql/storage/bat/bat_table.c b/sql/storage/bat/bat_table.c
--- a/sql/storage/bat/bat_table.c
+++ b/sql/storage/bat/bat_table.c
@@ -318,14 +318,17 @@ table_orderby(sql_trans *tr, sql_table *
bat_destroy(cr2);
bat_destroy(lcb);
bat_destroy(rcb);
- if (ret != GDK_SUCCEED)
+ if (ret != GDK_SUCCEED) {
+ bat_destroy(cl);
+ bat_destroy(cr);
return NULL;
+ }
lcb = BATproject(l, cl);
rcb = BATproject(l, cr);
bat_destroy(l);
+ bat_destroy(cl);
+ bat_destroy(cr);
if (!lcb || !rcb) {
- bat_destroy(cl);
- bat_destroy(cr);
bat_destroy(lcb);
bat_destroy(rcb);
bat_destroy(r);
@@ -381,20 +384,30 @@ table_orderby(sql_trans *tr, sql_table *
cl = r;
/* project all in the new order */
res_table *rt = res_table_create(tr, 1/*result_id*/, 1/*query_id*/,
ol_length(t->columns), Q_TABLE, NULL, NULL);
+ if (!rt) {
+ bat_destroy(cl);
+ return NULL;
+ }
rt->nr_rows = BATcount(cl);
for (node *n = ol_first_node(t->columns); n; n = n->next) {
+ BAT *rc = NULL;
+
o = n->data;
b = full_column(tr, o);
if (b)
- r = BATproject(cl, b);
+ rc = BATproject(cl, b);
bat_destroy(b);
- if (!b || !r) {
+ if (!b || !rc) {
bat_destroy(cl);
bat_destroy(b);
res_table_destroy(rt);
return NULL;
}
- (void)res_col_create(tr, rt, t->base.name, o->base.name,
o->type.type->base.name, o->type.type->digits, o->type.type->scale, TYPE_bat,
r, true);
+ if (!res_col_create(tr, rt, t->base.name, o->base.name,
o->type.type->base.name, o->type.type->digits, o->type.type->scale, TYPE_bat,
rc, true)) {
+ bat_destroy(cl);
+ res_table_destroy(rt);
+ return NULL;
+ }
}
bat_destroy(cl);
return rt;
diff --git a/sql/storage/bat/res_table.c b/sql/storage/bat/res_table.c
--- a/sql/storage/bat/res_table.c
+++ b/sql/storage/bat/res_table.c
@@ -140,7 +140,8 @@ res_table_destroy(res_table *t)
for (i = 0; i < t->nr_cols; i++) {
res_col *c = t->cols + i;
- res_col_destroy(c);
+ if (c)
+ res_col_destroy(c);
}
if (t->order)
bat_decref(t->order);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list