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