Changeset: faaa22e836d2 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=faaa22e836d2 Added Files: java/tests/BugDecimalRound_Bug_3561.java sql/jdbc/tests/Tests/BugDecimalRound_Bug_3561.SQL.bat sql/jdbc/tests/Tests/BugDecimalRound_Bug_3561.SQL.sh sql/jdbc/tests/Tests/BugDecimalRound_Bug_3561.stable.err sql/jdbc/tests/Tests/BugDecimalRound_Bug_3561.stable.out Modified Files: gdk/gdk_bbp.c gdk/gdk_join.c gdk/gdk_search.c gdk/gdk_select.c gdk/gdk_system.c java/tests/Makefile.ag java/tests/build.xml sql/jdbc/tests/Tests/All sql/storage/bat/bat_storage.c sql/storage/bat/bat_utils.c sql/storage/bat/bat_utils.h sql/storage/sql_storage.h sql/test/leaks/Tests/check0.stable.out sql/test/leaks/Tests/check0.stable.out.int128 sql/test/leaks/Tests/check1.stable.out sql/test/leaks/Tests/check1.stable.out.int128 sql/test/leaks/Tests/check2.stable.out sql/test/leaks/Tests/check2.stable.out.int128 sql/test/leaks/Tests/check3.stable.out sql/test/leaks/Tests/check3.stable.out.int128 sql/test/leaks/Tests/check4.stable.out sql/test/leaks/Tests/check4.stable.out.int128 sql/test/leaks/Tests/check5.stable.out sql/test/leaks/Tests/check5.stable.out.int128 sql/test/leaks/Tests/drop3.stable.out.int128 sql/test/leaks/Tests/select1.stable.out sql/test/leaks/Tests/select1.stable.out.int128 sql/test/leaks/Tests/select2.stable.out sql/test/leaks/Tests/select2.stable.out.int128 sql/test/leaks/Tests/temp1.stable.out sql/test/leaks/Tests/temp1.stable.out.int128 sql/test/leaks/Tests/temp2.stable.out.int128 sql/test/leaks/Tests/temp3.stable.out sql/test/leaks/Tests/temp3.stable.out.int128 Branch: default Log Message:
Merge with Jul2015 branch. diffs (truncated from 1375 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 @@ -454,7 +454,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 only_misses, const char *func) + int nil_on_miss, int only_misses, const char *func, lng t0) { BUN cnt; @@ -503,15 +503,18 @@ nomatch(BAT *r1, BAT *r2, BAT *l, BAT *r BATseqbase(r2, 0); } 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" : "", r2 ? BATgetId(r2) : "--", r2 ? BATcount(r2) : 0, r2 && r2->tsorted ? "-sorted" : "", - r2 && r2->trevsorted ? "-revsorted" : ""); + r2 && r2->trevsorted ? "-revsorted" : "", + r2 && r2->tkey & 1 ? "-key" : "", + GDKusec() - t0); return GDK_SUCCEED; bailout: @@ -522,7 +525,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 only_misses) + int nil_on_miss, int only_misses, lng t0) { oid lo, hi; BUN cnt, i; @@ -599,7 +602,7 @@ mergejoin_void(BAT *r1, BAT *r2, BAT *l, seq + cnt - l->hseqbase, NULL, NULL, nil_on_miss, only_misses, - "mergejoin_void"); + "mergejoin_void", t0); /* at this point, the matched values in l and * r (taking candidate lists into account) are @@ -951,16 +954,19 @@ mergejoin_void(BAT *r1, BAT *r2, BAT *l, virtualize(r1); if (r2 && r2->tkey && r2->tsorted) virtualize(r2); - ALGODEBUG fprintf(stderr, "#mergejoin_void(l=%s,r=%s)=(%s#"BUNFMT"%s%s%s,%s#"BUNFMT"%s%s%s)\n", + ALGODEBUG fprintf(stderr, "#mergejoin_void(l=%s,r=%s)=(%s#"BUNFMT"%s%s%s%s,%s#"BUNFMT"%s%s%s%s) " LLFMT "us\n", BATgetId(l), BATgetId(r), BATgetId(r1), BATcount(r1), r1->tsorted ? "-sorted" : "", r1->trevsorted ? "-revsorted" : "", r1->tdense ? "-dense" : "", + r1->tkey & 1 ? "-key" : "", r2 ? BATgetId(r2) : "--", r2 ? BATcount(r2) : 0, r2 && r2->tsorted ? "-sorted" : "", r2 && r2->trevsorted ? "-revsorted" : "", - r2 && r2->tdense ? "-dense" : ""); + r2 && r2->tdense ? "-dense" : "", + r2 && r2->tkey & 1 ? "-key" : "", + GDKusec() - t0); return GDK_SUCCEED; bailout: BBPreclaim(r1); @@ -986,7 +992,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 only_misses, - BUN maxsize) + BUN maxsize, lng t0, int swapped) { BUN lstart, lend, lcnt; const oid *lcand, *lcandend; @@ -1017,23 +1023,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)\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)%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); + sr && sr->tkey & 1 ? "-key" : "", + nil_matches, nil_on_miss, semi, + swapped ? " swapped" : ""); assert(BAThdense(l)); assert(BAThdense(r)); @@ -1074,7 +1085,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, only_misses, "mergejoin"); + nil_on_miss, only_misses, "mergejoin", t0); } if (l->tsorted || l->trevsorted) { @@ -1885,16 +1896,19 @@ mergejoin(BAT *r1, BAT *r2, BAT *l, BAT BATseqbase(r1, 0); if (r2) BATseqbase(r2, 0); - ALGODEBUG fprintf(stderr, "#mergejoin(l=%s,r=%s)=(%s#"BUNFMT"%s%s%s,%s#"BUNFMT"%s%s%s)\n", + ALGODEBUG fprintf(stderr, "#mergejoin(l=%s,r=%s)=(%s#"BUNFMT"%s%s%s%s,%s#"BUNFMT"%s%s%s%s) " LLFMT "us\n", BATgetId(l), BATgetId(r), BATgetId(r1), BATcount(r1), r1->tsorted ? "-sorted" : "", r1->trevsorted ? "-revsorted" : "", r1->tdense ? "-dense" : "", + r1->tkey & 1 ? "-key" : "", r2 ? BATgetId(r2) : "--", r2 ? BATcount(r2) : 0, r2 && r2->tsorted ? "-sorted" : "", r2 && r2->trevsorted ? "-revsorted" : "", - r2 && r2->tdense ? "-dense" : ""); + r2 && r2->tdense ? "-dense" : "", + r2 && r2->tkey & 1 ? "-key" : "", + GDKusec() - t0); return GDK_SUCCEED; bailout: @@ -1963,7 +1977,8 @@ binsearchcand(const oid *cand, BUN lo, B 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 only_misses, BUN maxsize) + int nil_on_miss, int semi, int only_misses, BUN maxsize, lng t0, + int swapped, const char *reason) { BUN lstart, lend, lcnt; const oid *lcand = NULL, *lcandend = NULL; @@ -1984,23 +1999,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)\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)%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); + sr && sr->tkey & 1 ? "-key" : "", + nil_matches, nil_on_miss, semi, + swapped ? " swapped" : "", + *reason ? " " : "", reason); assert(BAThdense(l)); assert(BAThdense(r)); @@ -2045,7 +2066,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, only_misses, "hashjoin"); + nil_on_miss, only_misses, "hashjoin", t0); rl = BUNfirst(r); #ifndef DISABLE_PARENT_HASH @@ -2341,16 +2362,19 @@ hashjoin(BAT *r1, BAT *r2, BAT *l, BAT * BATseqbase(r1, 0); if (r2) BATseqbase(r2, 0); - ALGODEBUG fprintf(stderr, "#hashjoin(l=%s,r=%s)=(%s#"BUNFMT"%s%s%s,%s#"BUNFMT"%s%s%s)\n", + ALGODEBUG fprintf(stderr, "#hashjoin(l=%s,r=%s)=(%s#"BUNFMT"%s%s%s%s,%s#"BUNFMT"%s%s%s%s) " LLFMT "us\n", BATgetId(l), BATgetId(r), BATgetId(r1), BATcount(r1), r1->tsorted ? "-sorted" : "", r1->trevsorted ? "-revsorted" : "", r1->tdense ? "-dense" : "", + r1->tkey & 1 ? "-key" : "", r2 ? BATgetId(r2) : "--", r2 ? BATcount(r2) : 0, r2 && r2->tsorted ? "-sorted" : "", r2 && r2->trevsorted ? "-revsorted" : "", - r2 && r2->tdense ? "-dense" : ""); + r2 && r2->tdense ? "-dense" : "", + r2 && r2->tkey & 1 ? "-key" : "", + GDKusec() - t0); return GDK_SUCCEED; bailout: @@ -2367,7 +2391,7 @@ hashjoin(BAT *r1, BAT *r2, BAT *l, BAT * #define MASK_NE (MASK_LT | MASK_GT) static gdk_return -thetajoin(BAT *r1, BAT *r2, BAT *l, BAT *r, BAT *sl, BAT *sr, int opcode, BUN maxsize) +thetajoin(BAT *r1, BAT *r2, BAT *l, BAT *r, BAT *sl, BAT *sr, int opcode, BUN maxsize, lng t0) { BUN lstart, lend, lcnt; const oid *lcand = NULL, *lcandend = NULL; @@ -2389,21 +2413,25 @@ thetajoin(BAT *r1, BAT *r2, BAT *l, BAT wrd loff = 0, roff = 0; oid lval = oid_nil, rval = oid_nil; - ALGODEBUG fprintf(stderr, "#thetajoin(l=%s#" BUNFMT "[%s]%s%s," - "r=%s#" BUNFMT "[%s]%s%s,sl=%s#" BUNFMT "%s%s," - "sr=%s#" BUNFMT "%s%s,op=%s%s%s)\n", + ALGODEBUG fprintf(stderr, "#thetajoin(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,op=%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" : "", + sr && sr->tkey & 1 ? "-key" : "", opcode & MASK_LT ? "<" : "", opcode & MASK_GT ? ">" : "", opcode & MASK_EQ ? "=" : ""); @@ -2577,14 +2605,17 @@ thetajoin(BAT *r1, BAT *r2, BAT *l, BAT } BATseqbase(r1, 0); BATseqbase(r2, 0); - ALGODEBUG fprintf(stderr, "#thetajoin(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, "#thetajoin(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: @@ -2595,7 +2626,7 @@ thetajoin(BAT *r1, BAT *r2, BAT *l, BAT static gdk_return bandjoin(BAT *r1, BAT *r2, BAT *l, BAT *r, BAT *sl, BAT *sr, - const void *c1, const void *c2, int li, int hi, BUN maxsize) + const void *c1, const void *c2, int li, int hi, BUN maxsize, lng t0) { BUN lstart, lend, lcnt; const oid *lcand = NULL, *lcandend = NULL; @@ -2615,21 +2646,25 @@ bandjoin(BAT *r1, BAT *r2, BAT *l, BAT * int lskipped = 0; /* whether we skipped values in l */ BUN nils = 0; /* needed for XXX_WITH_CHECK macros */ _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list