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

Reply via email to