Changeset: 3c20bf788101 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/3c20bf788101
Modified Files:
sql/backends/monet5/dict.c
sql/storage/bat/bat_storage.c
sql/storage/sql_storage.h
Branch: Jan2022
Log Message:
Set persistent role for persistent bats after decompressing
diffs (98 lines):
diff --git a/sql/backends/monet5/dict.c b/sql/backends/monet5/dict.c
--- a/sql/backends/monet5/dict.c
+++ b/sql/backends/monet5/dict.c
@@ -281,9 +281,9 @@ DICTcompress_col(Client cntxt, MalBlkPtr
/* improve decompress of hge types */
BAT *
-DICTdecompress_(BAT *o, BAT *u)
+DICTdecompress_(BAT *o, BAT *u, role_t role)
{
- BAT *b = COLnew(o->hseqbase, u->ttype, BATcount(o), TRANSIENT);
+ BAT *b = COLnew(o->hseqbase, u->ttype, BATcount(o), role);
if (!b)
return NULL;
@@ -374,7 +374,7 @@ DICTdecompress(Client cntxt, MalBlkPtr m
bat_destroy(u);
throw(SQL, "dict.decompress", SQLSTATE(HY013) MAL_MALLOC_FAIL);
}
- BAT *b = DICTdecompress_(o, u);
+ BAT *b = DICTdecompress_(o, u, TRANSIENT);
bat_destroy(o);
bat_destroy(u);
if (!b)
@@ -824,9 +824,9 @@ DICTselect(Client cntxt, MalBlkPtr mb, M
BAT *
-DICTenlarge(BAT *offsets, BUN cnt, BUN sz)
+DICTenlarge(BAT *offsets, BUN cnt, BUN sz, role_t role)
{
- BAT *n = COLnew(offsets->hseqbase, TYPE_sht, sz, TRANSIENT);
+ BAT *n = COLnew(offsets->hseqbase, TYPE_sht, sz, role);
if (!n)
return NULL;
@@ -940,7 +940,7 @@ DICTprepare4append(BAT **noffsets, BAT *
}
if (!f) {
if (BATcount(dict) >= 255) {
- BAT *nn = DICTenlarge(n, i, sz);
+ BAT *nn = DICTenlarge(n, i, sz,
TRANSIENT);
bat_destroy(n);
if (!nn) {
bat_iterator_end(&bi);
diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c
--- a/sql/storage/bat/bat_storage.c
+++ b/sql/storage/bat/bat_storage.c
@@ -1114,7 +1114,7 @@ dict_append_bat(column_storage *cs, BAT
bat_destroy(ui);
bat_destroy(uv);
}
- n = DICTdecompress_(b, u);
+ n = DICTdecompress_(b, u, PERSISTENT);
bat_destroy(b);
assert(newoffsets == NULL);
if (!n) {
@@ -1142,7 +1142,7 @@ dict_append_bat(column_storage *cs, BAT
bat_destroy(u);
return NULL;
}
- n = DICTenlarge(b, BATcount(b), BATcount(b) +
BATcount(i));
+ n = DICTenlarge(b, BATcount(b), BATcount(b) +
BATcount(i), PERSISTENT);
bat_destroy(b);
if (!n) {
bat_destroy(newoffsets);
@@ -1512,7 +1512,7 @@ dict_append_val(column_storage *cs, void
bat_destroy(u);
return NULL;
}
- n = DICTdecompress_(b, u);
+ n = DICTdecompress_(b, u, PERSISTENT);
/* TODO also decrompress updates if any */
bat_destroy(b);
assert(newoffsets == NULL);
@@ -1536,7 +1536,7 @@ dict_append_val(column_storage *cs, void
bat_destroy(u);
return NULL;
}
- n = DICTenlarge(b, BATcount(b), BATcount(b) +
cnt);
+ n = DICTenlarge(b, BATcount(b), BATcount(b) +
cnt, PERSISTENT);
bat_destroy(b);
if (!n) {
GDKfree(newoffsets);
diff --git a/sql/storage/sql_storage.h b/sql/storage/sql_storage.h
--- a/sql/storage/sql_storage.h
+++ b/sql/storage/sql_storage.h
@@ -530,8 +530,8 @@ extern int sql_trans_add_dependency(sql_
sql_export int sql_trans_add_dependency_change(sql_trans *tr, sqlid id,
sql_dependency_change_type tp);
/* later move intop dict.h on this level */
-extern BAT *DICTenlarge(BAT *offsets, BUN cnt, BUN sz);
-extern BAT *DICTdecompress_(BAT *o, BAT *u);
+extern BAT *DICTenlarge(BAT *offsets, BUN cnt, BUN sz, role_t role);
+extern BAT *DICTdecompress_(BAT *o, BAT *u, role_t role);
extern int DICTprepare4append(BAT **noffsets, BAT *vals, BAT *dict);
extern int DICTprepare4append_vals(void **noffsets, void *vals, BUN cnt, BAT
*dict);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list