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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list