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

Materialize void column before attempting to sort it.
If reverse sorting a void column, we need oids instead.


diffs (30 lines):

diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c
--- a/gdk/gdk_batop.c
+++ b/gdk/gdk_batop.c
@@ -1199,6 +1199,8 @@ BATsort(BAT **sorted, BAT **order, BAT *
                assert(g->ttype == TYPE_oid);
                grps = (oid *) Tloc(g, BUNfirst(g));
                prev = grps[0];
+               if (BATmaterialize(bn) != GDK_SUCCEED)
+                       goto error;
                for (r = 0, p = 1, q = BATcount(g); p < q; p++) {
                        if (grps[p] != prev) {
                                /* sub sort [r,p) */
@@ -1232,11 +1234,12 @@ BATsort(BAT **sorted, BAT **order, BAT *
                        b->tsorted = b->trevsorted = 1;
                }
                if (!(reverse ? bn->trevsorted : bn->tsorted) &&
-                   do_sort(Tloc(bn, BUNfirst(bn)),
-                           on ? Tloc(on, BUNfirst(on)) : NULL,
-                           bn->T->vheap ? bn->T->vheap->base : NULL,
-                           BATcount(bn), Tsize(bn), on ? Tsize(on) : 0,
-                           bn->ttype, reverse, stable) != GDK_SUCCEED)
+                   (BATmaterialize(bn) != GDK_SUCCEED ||
+                    do_sort(Tloc(bn, BUNfirst(bn)),
+                            on ? Tloc(on, BUNfirst(on)) : NULL,
+                            bn->T->vheap ? bn->T->vheap->base : NULL,
+                            BATcount(bn), Tsize(bn), on ? Tsize(on) : 0,
+                            bn->ttype, reverse, stable) != GDK_SUCCEED))
                        goto error;
                bn->tsorted = !reverse;
                bn->trevsorted = reverse;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to