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

Keep properties more precisely.


diffs (58 lines):

diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c
--- a/gdk/gdk_join.c
+++ b/gdk/gdk_join.c
@@ -162,12 +162,12 @@ mergejoin(BAT *r1, BAT *r2, BAT *l, BAT 
 
        /* set basic properties, they will be adjusted if necessary
         * later on */
-       r1->tsorted = l->tsorted;
-       r1->trevsorted = l->trevsorted;
+       r1->tsorted = 1;
+       r1->trevsorted = 1;
        r1->T->nil = 0;
        r1->T->nonil = 1;
-       r2->tsorted = r->tsorted;
-       r2->trevsorted = r->trevsorted;
+       r2->tsorted = 1;
+       r2->trevsorted = 1;
        r2->T->nil = 0;
        r2->T->nonil = 1;
 
@@ -356,8 +356,25 @@ mergejoin(BAT *r1, BAT *r2, BAT *l, BAT 
                        }
                        assert(BATcapacity(r1) == BATcapacity(r2));
                }
+
+               /* maintain properties */
                if (nl > 1)
+                       r2->tkey = 0;
+               if (nl > 1 || BATcount(r1) > 0)
+                       r1->trevsorted = 0;
+               if (nr > 1) {
                        r1->tkey = 0;
+                       r2->trevsorted = 0;
+                       if (nl > 1)
+                               r2->tsorted = 0;
+               }
+               if (BATcount(r1) > 0) {
+                       if (equal_order)
+                               r2->trevsorted = 0;
+                       else
+                               r2->tsorted = 0;
+               }
+
                /* insert values: various different ways of doing it */
                if (insert_nil) {
                        do {
@@ -405,11 +422,6 @@ mergejoin(BAT *r1, BAT *r2, BAT *l, BAT 
                                }
                        } while (--nl > 0);
                }
-               if (nr > 1) {
-                       r1->tkey = 0;
-                       r2->tsorted = 0;
-                       r2->trevsorted = 0;
-               }
        }
        assert(BATcount(r1) == BATcount(r2));
        return GDK_SUCCEED;
_______________________________________________
checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to