Changeset: 946e11847d8c for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=946e11847d8c Modified Files: gdk/gdk_join.c gdk/gdk_search.c Branch: Jul2015 Log Message:
Extended debug (ALGOMASK) output a bit. diffs (truncated from 741 to 300 lines): diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c --- a/gdk/gdk_join.c +++ b/gdk/gdk_join.c @@ -435,7 +435,7 @@ binsearch(const oid *rcand, oid offset, static gdk_return nomatch(BAT *r1, BAT *r2, BAT *l, BAT *r, BUN lstart, BUN lend, const oid *lcand, const oid *lcandend, - int nil_on_miss, int must_match, const char *func) + int nil_on_miss, int must_match, const char *func, lng t0) { BUN cnt; @@ -485,15 +485,18 @@ nomatch(BAT *r1, BAT *r2, BAT *l, BAT *r BATsetcount(r2, cnt); BATseqbase(BATmirror(r2), oid_nil); ALGODEBUG fprintf(stderr, - "#%s(l=%s,r=%s)=(%s#"BUNFMT"%s%s,%s#"BUNFMT"%s%s) -- nomatch\n", + "#%s(l=%s,r=%s)=(%s#"BUNFMT"%s%s%s,%s#"BUNFMT"%s%s%s) " LLFMT "us -- nomatch\n", func, BATgetId(l), BATgetId(r), BATgetId(r1), BATcount(r1), r1->tsorted ? "-sorted" : "", r1->trevsorted ? "-revsorted" : "", + r1->tkey & 1 ? "-key" : "", BATgetId(r2), BATcount(r2), r2->tsorted ? "-sorted" : "", - r2->trevsorted ? "-revsorted" : ""); + r2->trevsorted ? "-revsorted" : "", + r2->tkey & 1 ? "-key" : "", + GDKusec() - t0); return GDK_SUCCEED; bailout: @@ -504,7 +507,7 @@ nomatch(BAT *r1, BAT *r2, BAT *l, BAT *r static gdk_return mergejoin_void(BAT *r1, BAT *r2, BAT *l, BAT *r, BAT *sl, BAT *sr, - int nil_on_miss, int must_match) + int nil_on_miss, int must_match, lng t0) { oid lo, hi; BUN cnt, i; @@ -582,7 +585,7 @@ mergejoin_void(BAT *r1, BAT *r2, BAT *l, seq + cnt - l->hseqbase, NULL, NULL, nil_on_miss, must_match, - "mergejoin_void"); + "mergejoin_void", t0); if (must_match && hi - lo < cnt) { GDKerror("mergejoin(%s,%s) does not hit always => can't use fetchjoin.\n", BATgetId(l), BATgetId(r)); goto bailout; @@ -635,14 +638,17 @@ mergejoin_void(BAT *r1, BAT *r2, BAT *l, /* (hi - lo) different OIDs in r2, * plus one for nil */ r2->tkey = hi - lo + 1 == cnt; - ALGODEBUG fprintf(stderr, "#mergejoin_void(l=%s,r=%s)=(%s#"BUNFMT"%s%s,%s#"BUNFMT"%s%s)\n", + ALGODEBUG fprintf(stderr, "#mergejoin_void(l=%s,r=%s)=(%s#"BUNFMT"%s%s%s,%s#"BUNFMT"%s%s%s) " LLFMT "us\n", BATgetId(l), BATgetId(r), BATgetId(r1), BATcount(r1), r1->tsorted ? "-sorted" : "", r1->trevsorted ? "-revsorted" : "", + r1->tkey & 1 ? "-key" : "", BATgetId(r2), BATcount(r2), r2->tsorted ? "-sorted" : "", - r2->trevsorted ? "-revsorted" : ""); + r2->trevsorted ? "-revsorted" : "", + r2->tkey & 1 ? "-key" : "", + GDKusec() - t0); return GDK_SUCCEED; } BATsetcount(r1, hi - lo); @@ -655,14 +661,17 @@ mergejoin_void(BAT *r1, BAT *r2, BAT *l, r2->T->shift = 0; BATsetcount(r2, hi - lo); BATseqbase(BATmirror(r2), r->hseqbase + lo - r->tseqbase); - ALGODEBUG fprintf(stderr, "#mergejoin_void(l=%s,r=%s)=(%s#"BUNFMT"%s%s,%s#"BUNFMT"%s%s)\n", + ALGODEBUG fprintf(stderr, "#mergejoin_void(l=%s,r=%s)=(%s#"BUNFMT"%s%s%s,%s#"BUNFMT"%s%s%s) " LLFMT "us\n", BATgetId(l), BATgetId(r), BATgetId(r1), BATcount(r1), r1->tsorted ? "-sorted" : "", r1->trevsorted ? "-revsorted" : "", + r1->tkey & 1 ? "-key" : "", BATgetId(r2), BATcount(r2), r2->tsorted ? "-sorted" : "", - r2->trevsorted ? "-revsorted" : ""); + r2->trevsorted ? "-revsorted" : "", + r2->tkey & 1 ? "-key" : "", + GDKusec() - t0); return GDK_SUCCEED; } /* l has a dense tail, but the candidate list exists @@ -730,14 +739,17 @@ mergejoin_void(BAT *r1, BAT *r2, BAT *l, r1->T->nil = 0; r1->T->nonil = 1; r1->tkey = 1; - ALGODEBUG fprintf(stderr, "#mergejoin_void(l=%s,r=%s)=(%s#"BUNFMT"%s%s,%s#"BUNFMT"%s%s)\n", + ALGODEBUG fprintf(stderr, "#mergejoin_void(l=%s,r=%s)=(%s#"BUNFMT"%s%s%s,%s#"BUNFMT"%s%s%s) " LLFMT "us\n", BATgetId(l), BATgetId(r), BATgetId(r1), BATcount(r1), r1->tsorted ? "-sorted" : "", r1->trevsorted ? "-revsorted" : "", + r1->tkey & 1 ? "-key" : "", BATgetId(r2), BATcount(r2), r2->tsorted ? "-sorted" : "", - r2->trevsorted ? "-revsorted" : ""); + r2->trevsorted ? "-revsorted" : "", + r2->tkey & 1 ? "-key" : "", + GDKusec() - t0); return GDK_SUCCEED; } /* l does not have a dense tail, so we need to look at the @@ -812,14 +824,17 @@ mergejoin_void(BAT *r1, BAT *r2, BAT *l, r2->trevsorted = l->trevsorted || BATcount(r2) <= 1; r2->tkey = (l->tkey & 1) || BATcount(r2) <= 1; r2->tdense = 0; - ALGODEBUG fprintf(stderr, "#mergejoin_void(l=%s,r=%s)=(%s#"BUNFMT"%s%s,%s#"BUNFMT"%s%s)\n", + ALGODEBUG fprintf(stderr, "#mergejoin_void(l=%s,r=%s)=(%s#"BUNFMT"%s%s%s,%s#"BUNFMT"%s%s%s) " LLFMT " us\n", BATgetId(l), BATgetId(r), BATgetId(r1), BATcount(r1), r1->tsorted ? "-sorted" : "", r1->trevsorted ? "-revsorted" : "", + r1->tkey & 1 ? "-key" : "", BATgetId(r2), BATcount(r2), r2->tsorted ? "-sorted" : "", - r2->trevsorted ? "-revsorted" : ""); + r2->trevsorted ? "-revsorted" : "", + r2->tkey & 1 ? "-key" : "", + GDKusec() - t0); return GDK_SUCCEED; } } @@ -883,14 +898,17 @@ mergejoin_void(BAT *r1, BAT *r2, BAT *l, r2->tdense = 0; r2->tseqbase = oid_nil; } - ALGODEBUG fprintf(stderr, "#mergejoin_void(l=%s,r=%s)=(%s#"BUNFMT"%s%s,%s#"BUNFMT"%s%s)\n", + ALGODEBUG fprintf(stderr, "#mergejoin_void(l=%s,r=%s)=(%s#"BUNFMT"%s%s%s,%s#"BUNFMT"%s%s%s) " LLFMT "us\n", BATgetId(l), BATgetId(r), BATgetId(r1), BATcount(r1), r1->tsorted ? "-sorted" : "", r1->trevsorted ? "-revsorted" : "", + r1->tkey & 1 ? "-key" : "", BATgetId(r2), BATcount(r2), r2->tsorted ? "-sorted" : "", - r2->trevsorted ? "-revsorted" : ""); + r2->trevsorted ? "-revsorted" : "", + r2->tkey & 1 ? "-key" : "", + GDKusec() - t0); return GDK_SUCCEED; bailout: BBPreclaim(r1); @@ -916,7 +934,7 @@ mergejoin_void(BAT *r1, BAT *r2, BAT *l, static gdk_return mergejoin(BAT *r1, BAT *r2, BAT *l, BAT *r, BAT *sl, BAT *sr, int nil_matches, int nil_on_miss, int semi, int must_match, - BUN maxsize) + BUN maxsize, lng t0, int swapped) { BUN lstart, lend, lcnt; const oid *lcand, *lcandend; @@ -947,23 +965,28 @@ mergejoin(BAT *r1, BAT *r2, BAT *l, BAT wrd loff = 0, roff = 0; oid lval = oid_nil, rval = oid_nil; - ALGODEBUG fprintf(stderr, "#mergejoin(l=%s#" BUNFMT "[%s]%s%s," - "r=%s#" BUNFMT "[%s]%s%s,sl=%s#" BUNFMT "%s%s," - "sr=%s#" BUNFMT "%s%s,nil_matches=%d," - "nil_on_miss=%d,semi=%d,must_match=%d)\n", + ALGODEBUG fprintf(stderr, "#mergejoin(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_matches=%d," + "nil_on_miss=%d,semi=%d,must_match=%d)%s\n", BATgetId(l), BATcount(l), ATOMname(l->ttype), l->tsorted ? "-sorted" : "", l->trevsorted ? "-revsorted" : "", + l->tkey & 1 ? "-key" : "", BATgetId(r), BATcount(r), ATOMname(r->ttype), r->tsorted ? "-sorted" : "", r->trevsorted ? "-revsorted" : "", + r->tkey & 1 ? "-key" : "", sl ? BATgetId(sl) : "NULL", sl ? BATcount(sl) : 0, sl && sl->tsorted ? "-sorted" : "", sl && sl->trevsorted ? "-revsorted" : "", + sl && sl->tkey & 1 ? "-key" : "", sr ? BATgetId(sr) : "NULL", sr ? BATcount(sr) : 0, sr && sr->tsorted ? "-sorted" : "", sr && sr->trevsorted ? "-revsorted" : "", - nil_matches, nil_on_miss, semi, must_match); + sr && sr->tkey & 1 ? "-key" : "", + nil_matches, nil_on_miss, semi, must_match, + swapped ? " swapped" : ""); assert(BAThdense(l)); assert(BAThdense(r)); @@ -1005,7 +1028,7 @@ mergejoin(BAT *r1, BAT *r2, BAT *l, BAT (l->ttype == TYPE_void && l->tseqbase != oid_nil)))) { /* there are no matches */ return nomatch(r1, r2, l, r, lstart, lend, lcand, lcandend, - nil_on_miss, must_match, "mergejoin"); + nil_on_miss, must_match, "mergejoin", t0); } if (l->tsorted || l->trevsorted) { @@ -1746,14 +1769,17 @@ mergejoin(BAT *r1, BAT *r2, BAT *l, BAT if (r2->tdense) r2->tseqbase = ((oid *) r2->T->heap.base)[r2->batFirst]; } - ALGODEBUG fprintf(stderr, "#mergejoin(l=%s,r=%s)=(%s#"BUNFMT"%s%s,%s#"BUNFMT"%s%s)\n", - BATgetId(l), BATgetId(r), - BATgetId(r1), BATcount(r1), - r1->tsorted ? "-sorted" : "", - r1->trevsorted ? "-revsorted" : "", - BATgetId(r2), BATcount(r2), - r2->tsorted ? "-sorted" : "", - r2->trevsorted ? "-revsorted" : ""); + ALGODEBUG fprintf(stderr, "#mergejoin(l=%s,r=%s)=(%s#"BUNFMT"%s%s%s,%s#"BUNFMT"%s%s%s) " LLFMT "us\n", + BATgetId(l), BATgetId(r), + BATgetId(r1), BATcount(r1), + r1->tsorted ? "-sorted" : "", + r1->trevsorted ? "-revsorted" : "", + r1->tkey & 1 ? "-key" : "", + BATgetId(r2), BATcount(r2), + r2->tsorted ? "-sorted" : "", + r2->trevsorted ? "-revsorted" : "", + r2->tkey & 1 ? "-key" : "", + GDKusec() - t0); return GDK_SUCCEED; bailout: @@ -1817,7 +1843,9 @@ binsearchcand(const oid *cand, BUN lo, B simple_EQ(v, BUNtloc(bi, hb), TYPE)) static gdk_return -hashjoin(BAT *r1, BAT *r2, BAT *l, BAT *r, BAT *sl, BAT *sr, int nil_matches, int nil_on_miss, int semi, int must_match, BUN maxsize) +hashjoin(BAT *r1, BAT *r2, BAT *l, BAT *r, BAT *sl, BAT *sr, int nil_matches, + int nil_on_miss, int semi, int must_match, BUN maxsize, lng t0, + int swapped, const char *reason) { BUN lstart, lend, lcnt; const oid *lcand = NULL, *lcandend = NULL; @@ -1838,23 +1866,29 @@ hashjoin(BAT *r1, BAT *r2, BAT *l, BAT * const char *v = (const char *) &lval; int lskipped = 0; /* whether we skipped values in l */ - ALGODEBUG fprintf(stderr, "#hashjoin(l=%s#" BUNFMT "[%s]%s%s," - "r=%s#" BUNFMT "[%s]%s%s,sl=%s#" BUNFMT "%s%s," - "sr=%s#" BUNFMT "%s%s,nil_matches=%d," - "nil_on_miss=%d,semi=%d,must_match=%d)\n", + ALGODEBUG fprintf(stderr, "#hashjoin(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_matches=%d," + "nil_on_miss=%d,semi=%d,must_match=%d)%s%s%s\n", BATgetId(l), BATcount(l), ATOMname(l->ttype), l->tsorted ? "-sorted" : "", l->trevsorted ? "-revsorted" : "", + l->tkey & 1 ? "-key" : "", BATgetId(r), BATcount(r), ATOMname(r->ttype), r->tsorted ? "-sorted" : "", r->trevsorted ? "-revsorted" : "", + r->tkey & 1 ? "-key" : "", sl ? BATgetId(sl) : "NULL", sl ? BATcount(sl) : 0, sl && sl->tsorted ? "-sorted" : "", sl && sl->trevsorted ? "-revsorted" : "", + sl && sl->tkey & 1 ? "-key" : "", sr ? BATgetId(sr) : "NULL", sr ? BATcount(sr) : 0, sr && sr->tsorted ? "-sorted" : "", sr && sr->trevsorted ? "-revsorted" : "", - nil_matches, nil_on_miss, semi, must_match); + sr && sr->tkey & 1 ? "-key" : "", + nil_matches, nil_on_miss, semi, must_match, + swapped ? " swapped" : "", + *reason ? " " : "", reason); assert(BAThdense(l)); assert(BAThdense(r)); @@ -1897,7 +1931,7 @@ hashjoin(BAT *r1, BAT *r2, BAT *l, BAT * if (lstart == lend || rstart == rend) return nomatch(r1, r2, l, r, lstart, lend, lcand, lcandend, - nil_on_miss, must_match, "hashjoin"); + nil_on_miss, must_match, "hashjoin", t0); rl = BUNfirst(r); #ifndef DISABLE_PARENT_HASH @@ -2143,14 +2177,17 @@ hashjoin(BAT *r1, BAT *r2, BAT *l, BAT * if (r2->tdense) r2->tseqbase = ((oid *) r2->T->heap.base)[r2->batFirst]; } - ALGODEBUG fprintf(stderr, "#hashjoin(l=%s,r=%s)=(%s#"BUNFMT"%s%s,%s#"BUNFMT"%s%s)\n", - BATgetId(l), BATgetId(r), - BATgetId(r1), BATcount(r1), - r1->tsorted ? "-sorted" : "", - r1->trevsorted ? "-revsorted" : "", - BATgetId(r2), BATcount(r2), - r2->tsorted ? "-sorted" : "", - r2->trevsorted ? "-revsorted" : ""); + ALGODEBUG fprintf(stderr, "#hashjoin(l=%s,r=%s)=(%s#"BUNFMT"%s%s%s,%s#"BUNFMT"%s%s%s) " LLFMT "us\n", + BATgetId(l), BATgetId(r), + BATgetId(r1), BATcount(r1), + r1->tsorted ? "-sorted" : "", _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list