Changeset: 875b7277d19a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=875b7277d19a
Modified Files:
monetdb5/modules/mal/mat.c
monetdb5/modules/mal/tablet.c
sql/backends/monet5/sql.c
Branch: Aug2018
Log Message:
Check for BATsetaccess call.
diffs (77 lines):
diff --git a/monetdb5/modules/mal/mat.c b/monetdb5/modules/mal/mat.c
--- a/monetdb5/modules/mal/mat.c
+++ b/monetdb5/modules/mal/mat.c
@@ -152,7 +152,10 @@ MATpackIncrement(Client cntxt, MalBlkPtr
}
b->S.unused--;
if(b->S.unused == 0)
- BATsetaccess(b, BAT_READ);
+ if (BATsetaccess(b, BAT_READ) != GDK_SUCCEED) {
+ BBPunfix(b->batCacheid);
+ throw(MAL, "mat.pack", GDK_EXCEPTION);
+ }
assert(!b->tnil || !b->tnonil);
BBPkeepref(*ret = b->batCacheid);
}
diff --git a/monetdb5/modules/mal/tablet.c b/monetdb5/modules/mal/tablet.c
--- a/monetdb5/modules/mal/tablet.c
+++ b/monetdb5/modules/mal/tablet.c
@@ -60,7 +60,10 @@ void_bat_create(int adt, BUN nr)
/* check for correct structures */
if (b == NULL)
return NULL;
- BATsetaccess(b, BAT_APPEND);
+ if (BATsetaccess(b, BAT_APPEND) != GDK_SUCCEED) {
+ BBPunfix(b->batCacheid);
+ return NULL;
+ }
if (nr > BATTINY && adt && BATextend(b, nr) != GDK_SUCCEED) {
BBPunfix(b->batCacheid);
return NULL;
@@ -170,7 +173,8 @@ TABLETcollect(BAT **bats, Tablet *as)
continue;
bats[j] = fmt[i].c;
BBPfix(bats[j]->batCacheid);
- BATsetaccess(fmt[i].c, BAT_READ);
+ if (BATsetaccess(fmt[i].c, BAT_READ) != GDK_SUCCEED)
+ throw(SQL, "copy", "Failed to set access at tablet part
" BUNFMT "\n", cnt);
fmt[i].c->tsorted = fmt[i].c->trevsorted = 0;
fmt[i].c->tkey = 0;
BATsettrivprop(fmt[i].c);
@@ -200,7 +204,8 @@ TABLETcollect_parts(BAT **bats, Tablet *
b->tsorted = b->trevsorted = 0;
b->tkey = 0;
BATsettrivprop(b);
- BATsetaccess(b, BAT_READ);
+ if (BATsetaccess(b, BAT_READ) != GDK_SUCCEED)
+ throw(SQL, "copy", "Failed to set access at tablet part
" BUNFMT "\n", cnt);
bv = BATslice(b, (offset > 0) ? offset - 1 : 0, BATcount(b));
bats[j] = bv;
diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -1391,7 +1391,10 @@ setwritable(BAT *b)
if (b->batSharecnt) {
bn = COLcopy(b, b->ttype, true, TRANSIENT);
if (bn != NULL)
- BATsetaccess(bn, BAT_WRITE);
+ if (BATsetaccess(bn, BAT_WRITE) != GDK_SUCCEED)
{
+ BBPreclaim(bn);
+ bn = NULL;
+ }
} else {
bn = NULL;
}
@@ -2794,7 +2797,10 @@ mvc_bin_import_table_wrap(Client cntxt,
c = BATattach(col->type.type->localtype, fname,
TRANSIENT);
if (c == NULL)
throw(SQL, "sql", SQLSTATE(42000) "Failed to
attach file %s", fname);
- BATsetaccess(c, BAT_READ);
+ if (BATsetaccess(c, BAT_READ) != GDK_SUCCEED) {
+ BBPreclaim(c);
+ throw(SQL, "sql", SQLSTATE(42000) "Failed to
set internal access while attaching file %s", fname);
+ }
} else if (tpe == TYPE_str) {
/* get the BAT and fill it with the strings */
c = COLnew(0, TYPE_str, 0, TRANSIENT);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list