Changeset: 6e7b837f8d47 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6e7b837f8d47
Modified Files:
gdk/gdk_join.c
Branch: leftmart
Log Message:
do not use bloom filters with the new fnv hash function.
This is to be bale to do experiments with one change at a time.
diffs (71 lines):
diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c
--- a/gdk/gdk_join.c
+++ b/gdk/gdk_join.c
@@ -2546,7 +2546,7 @@ mergejoin(BAT *r1, BAT *r2, BAT *l, BAT
}
/* binary search in a candidate list, return 1 if found, 0 if not */
-inline int
+static inline int
binsearchcand(const oid *cand, BUN lo, BUN hi, oid v)
{
BUN mid;
@@ -2606,18 +2606,13 @@ binsearchcand(const oid *cand, BUN lo, B
#define HASHJOIN(TYPE, WIDTH) \
do { \
BUN hashnil = HASHnil(hsh); \
- BUN yes = 0, no = 0, false_positive = 0; \
for (lo = lstart - BUNfirst(l) + l->hseqbase; \
lstart < lend; \
lo++) { \
- int ask; \
v = FVALUE(l, lstart); \
lstart++; \
nr = 0; \
- ask = BLOOMask((BUN) (*(TYPE*)v), r->T->bloom); \
- no++; \
- if (*(const TYPE*)v != TYPE##_nil && ask) { \
- yes++; no--; \
+ if (*(const TYPE*)v != TYPE##_nil) { \
for (rb = HASHget##WIDTH(hsh, hash_##TYPE(hsh,
v)); \
rb != hashnil; \
rb = HASHgetlink##WIDTH(hsh, rb)) \
@@ -2628,7 +2623,6 @@ binsearchcand(const oid *cand, BUN lo, B
} \
} \
if (nr == 0) { \
- if (ask) false_positive++; \
lskipped = BATcount(r1) > 0; \
} else { \
if (lskipped) { \
@@ -2642,11 +2636,6 @@ binsearchcand(const oid *cand, BUN lo, B
r1->trevsorted = 0; \
} \
} \
- ALGODEBUG fprintf(stderr,"#hashjoin(b=%s#" BUNFMT ") %s: "
\
- "ask bloom filter: yes = " BUNFMT ", no = "
BUNFMT \
- ", probes = " BUNFMT ", false positives = "
BUNFMT "\n", \
- BATgetId(r), BATcount(r), r->T->heap.filename, \
- yes, no, lo, false_positive ); \
} while (0)
static gdk_return
@@ -2778,18 +2767,6 @@ hashjoin(BAT *r1, BAT *r2, BAT *l, BAT *
hsh = r->T->hash;
t = ATOMbasetype(r->ttype);
- /* check for bloom filter on right */
- if (!BATcheckbloom(r)) {
- BATbloom(r);
- ALGODEBUG
- fprintf(stderr,"#hashjoin(b=%s#" BUNFMT ") %s: bloom
filter not found, created.\n",
- BATgetId(r), BATcount(r), r->T->heap.filename);
- } else {
- ALGODEBUG
- fprintf(stderr,"#hashjoin(b=%s#" BUNFMT ") %s: bloom
filter found.\n",
- BATgetId(r), BATcount(r), r->T->heap.filename);
- }
-
if (lcand == NULL && rcand == NULL && lvars == NULL &&
!nil_matches && !nil_on_miss && !semi && !only_misses &&
l->ttype != TYPE_void && (t == TYPE_int || t == TYPE_lng)) {
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list