Changeset: 3a1d80dfb2ea for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3a1d80dfb2ea Modified Files: gdk/gdk_join.c Branch: Mar2018 Log Message:
Add ALGODEBUG print. 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 @@ -463,13 +463,36 @@ selectjoin(BAT *r1, BAT *r2, BAT *l, BAT static gdk_return mergejoin_void(BAT *r1, BAT *r2, BAT *l, BAT *r, BAT *sl, BAT *sr, - bool nil_on_miss, bool only_misses, lng t0) + bool nil_on_miss, bool only_misses, lng t0, bool swapped) { oid lo, hi; BUN cnt, i; const oid *lvals; oid o, seq; + ALGODEBUG fprintf(stderr, "#mergejoin_void(l=%s#" BUNFMT "[%s]%s%s%s," + "r=%s#" BUNFMT "[%s]%s%s%s,sl=%s#" BUNFMT "%s%s%s," + "sr=%s#" BUNFMT "%s%s%s," + "nil_on_miss=%d,only_misses=%d)%s\n", + BATgetId(l), BATcount(l), ATOMname(l->ttype), + l->tsorted ? "-sorted" : "", + l->trevsorted ? "-revsorted" : "", + l->tkey ? "-key" : "", + BATgetId(r), BATcount(r), ATOMname(r->ttype), + r->tsorted ? "-sorted" : "", + r->trevsorted ? "-revsorted" : "", + r->tkey ? "-key" : "", + sl ? BATgetId(sl) : "NULL", sl ? BATcount(sl) : 0, + sl && sl->tsorted ? "-sorted" : "", + sl && sl->trevsorted ? "-revsorted" : "", + sl && sl->tkey ? "-key" : "", + sr ? BATgetId(sr) : "NULL", sr ? BATcount(sr) : 0, + sr && sr->tsorted ? "-sorted" : "", + sr && sr->trevsorted ? "-revsorted" : "", + sr && sr->tkey ? "-key" : "", + nil_on_miss, only_misses, + swapped ? " swapped" : ""); + /* r is dense, and if there is a candidate list, it too is * dense. This means we don't have to do any searches, we * only need to compare ranges to know whether a value from l @@ -3789,7 +3812,7 @@ leftjoin(BAT **r1p, BAT **r2p, BAT *l, B lcount > 0 && rcount > 0) { /* use special implementation for dense right-hand side */ return mergejoin_void(r1, r2, l, r, sl, sr, - nil_on_miss, only_misses, t0); + nil_on_miss, only_misses, t0, false); } else if ((BATordered(r) || BATordered_rev(r)) && (BATtdense(r) || lcount < 1024 || @@ -3984,10 +4007,10 @@ BATjoin(BAT **r1p, BAT **r2p, BAT *l, BA return selectjoin(r2, r1, r, l, sr, sl, nil_matches, t0, true); } else if (BATtdense(r) && (sr == NULL || BATtdense(sr))) { /* use special implementation for dense right-hand side */ - return mergejoin_void(r1, r2, l, r, sl, sr, false, false, t0); + return mergejoin_void(r1, r2, l, r, sl, sr, false, false, t0, false); } else if (BATtdense(l) && (sl == NULL || BATtdense(sl))) { /* use special implementation for dense right-hand side */ - return mergejoin_void(r2, r1, r, l, sr, sl, false, false, t0); + return mergejoin_void(r2, r1, r, l, sr, sl, false, false, t0, true); } else if ((BATordered(l) || BATordered_rev(l)) && (BATordered(r) || BATordered_rev(r))) { /* both sorted */ _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list