Changeset: 2f3c782345a2 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2f3c782345a2
Modified Files:
        gdk/gdk_batop.c
        gdk/gdk_select.c
Branch: Oct2014
Log Message:

make sure append correctly keeps tail-dense info
selects returning all rows are dense
(grafted from d153a5a6ebb497adfbaeb4bc9dd67be54b391fed)


diffs (46 lines):

diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c
--- a/gdk/gdk_batop.c
+++ b/gdk/gdk_batop.c
@@ -525,7 +525,7 @@ BATins(BAT *b, BAT *n, bit force)
                        }
                        if (b->htype != TYPE_void && b->hsorted && b->hdense &&
                            (BAThdense(n) == 0 ||
-                            *(oid *) BUNhloc(bi, last) != 1 + *(oid *) 
BUNhead(ni, BUNfirst(n)))) {
+                            1 + *(oid *) BUNhloc(bi, last) != *(oid *) 
BUNhead(ni, BUNfirst(n)))) {
                                b->hdense = FALSE;
                                b->H->nodense = r;
                        }
@@ -551,7 +551,7 @@ BATins(BAT *b, BAT *n, bit force)
                        }
                        if (b->ttype != TYPE_void && b->tsorted && b->tdense &&
                            (BATtdense(n) == 0 ||
-                            *(oid *) BUNtloc(bi, last) != 1 + *(oid *) 
BUNtail(ni, BUNfirst(n)))) {
+                            1 + *(oid *) BUNtloc(bi, last) != *(oid *) 
BUNtail(ni, BUNfirst(n)))) {
                                b->tdense = FALSE;
                                b->T->nodense = r;
                        }
@@ -763,7 +763,7 @@ BATappend(BAT *b, BAT *n, bit force)
                        }
                        if (b->ttype != TYPE_void && b->tsorted && b->tdense &&
                            (BATtdense(n) == 0 ||
-                            *(oid *) BUNtloc(bi, last) != 1 + *(oid *) 
BUNtail(ni, BUNfirst(n)))) {
+                            1 + *(oid *) BUNtloc(bi, last) != *(oid *) 
BUNtail(ni, BUNfirst(n)))) {
                                b->tdense = FALSE;
                                b->T->nodense = r;
                        }
diff --git a/gdk/gdk_select.c b/gdk/gdk_select.c
--- a/gdk/gdk_select.c
+++ b/gdk/gdk_select.c
@@ -865,9 +865,9 @@ BAT_scanselect(BAT *b, BAT *s, BAT *bn, 
        bn->tsorted = 1;
        bn->trevsorted = bn->batCount <= 1;
        bn->tkey = 1;
-       bn->tdense = bn->batCount <= 1;
-       if (bn->batCount == 1)
-               bn->tseqbase = *(oid *) Tloc(bn, BUNfirst(bn));
+       bn->tdense = (bn->batCount <= 1 || bn->batCount == b->batCount);
+       if (bn->batCount == 1 || bn->batCount == b->batCount)
+               bn->tseqbase = b->hseqbase;
        bn->hsorted = 1;
        bn->hdense = 1;
        bn->hseqbase = 0;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to