Changeset: c1fd9e9de135 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c1fd9e9de135
Modified Files:
        gdk/gdk_join.c
        gdk/gdk_select.c
Branch: Jun2016
Log Message:

When virtualizing an OID column, set storage type and size correctly.


diffs (63 lines):

diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c
--- a/gdk/gdk_join.c
+++ b/gdk/gdk_join.c
@@ -490,6 +490,8 @@ nomatch(BAT *r1, BAT *r2, BAT *l, BAT *r
        } else {
                cnt = lend - lstart;
                HEAPfree(&r1->T->heap, 1);
+               r1->T->heap.storage = r1->T->heap.newstorage = STORE_MEM;
+               r1->T->heap.size = 0;
                r1->ttype = TYPE_void;
                r1->tvarsized = 1;
                r1->T->width = 0;
@@ -503,6 +505,8 @@ nomatch(BAT *r1, BAT *r2, BAT *l, BAT *r
        BATseqbase(r1, 0);
        if (r2) {
                HEAPfree(&r2->T->heap, 1);
+               r2->T->heap.storage = r2->T->heap.newstorage = STORE_MEM;
+               r2->T->heap.size = 0;
                r2->ttype = TYPE_void;
                r2->tvarsized = 1;
                r2->T->width = 0;
@@ -639,6 +643,9 @@ mergejoin_void(BAT *r1, BAT *r2, BAT *l,
                                         * the result is the other
                                         * range and thus dense */
                                        HEAPfree(&r1->T->heap, 1);
+                                       r1->T->heap.storage = STORE_MEM;
+                                       r1->T->heap.newstorage = STORE_MEM;
+                                       r1->T->heap.size = 0;
                                        r1->ttype = TYPE_void;
                                        r1->tvarsized = 1;
                                        r1->T->width = 0;
@@ -668,6 +675,9 @@ mergejoin_void(BAT *r1, BAT *r2, BAT *l,
                        }
                        r1->tdense = 1;
                        HEAPfree(&r1->T->heap, 1);
+                       r1->T->heap.storage = STORE_MEM;
+                       r1->T->heap.newstorage = STORE_MEM;
+                       r1->T->heap.size = 0;
                        r1->ttype = TYPE_void;
                        r1->tvarsized = 1;
                        r1->T->width = 0;
@@ -712,6 +722,9 @@ mergejoin_void(BAT *r1, BAT *r2, BAT *l,
                        if (r2) {
                                r2->tdense = 1;
                                HEAPfree(&r2->T->heap, 1);
+                               r2->T->heap.storage = STORE_MEM;
+                               r2->T->heap.newstorage = STORE_MEM;
+                               r2->T->heap.size = 0;
                                r2->ttype = TYPE_void;
                                r2->tvarsized = 1;
                                r2->T->width = 0;
diff --git a/gdk/gdk_select.c b/gdk/gdk_select.c
--- a/gdk/gdk_select.c
+++ b/gdk/gdk_select.c
@@ -59,6 +59,8 @@ virtualize(BAT *bn)
                        bn->tseqbase = * (const oid *) Tloc(bn, BUNfirst(bn));
                bn->tdense = 1;
                HEAPfree(&bn->T->heap, 1);
+               bn->T->heap.storage = bn->T->heap.newstorage = STORE_MEM;
+               bn->T->heap.size = 0;
                bn->ttype = TYPE_void;
                bn->tvarsized = 1;
                bn->T->width = 0;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to