Changeset: 051b71293bde for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=051b71293bde
Modified Files:
gdk/gdk_join.c
Branch: default
Log Message:
Expand changeset 2388be79d03e: type expand nil check.
diffs (53 lines):
diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c
--- a/gdk/gdk_join.c
+++ b/gdk/gdk_join.c
@@ -1366,12 +1366,12 @@ hashjoin(BAT *r1, BAT *r2, BAT *l, BAT *
v = VALUE(l, lstart);
}
lstart++;
- if (!nil_matches && cmp(v, nil) == 0) {
- lskipped = BATcount(r1) > 0;
- continue;
- }
nr = 0;
if (rcand) {
+ if (!nil_matches && cmp(v, nil) == 0) {
+ lskipped = BATcount(r1) > 0;
+ continue;
+ }
HASHloop(ri, r->H->hash, rb, v) {
ro = (oid) (rb + rbun2oid);
if (!binsearchcand(rcand, 0, nrcand,
ro))
@@ -1389,6 +1389,10 @@ hashjoin(BAT *r1, BAT *r2, BAT *l, BAT *
#if SIZEOF_WRD == SIZEOF_INT
case TYPE_wrd:
#endif
+ if (!nil_matches && *(const int*)v ==
int_nil) {
+ lskipped = BATcount(r1) > 0;
+ continue;
+ }
HASHloop_int(ri, r->H->hash, rb, v) {
rb0 = rb - BUNfirst(r); /*
zero-based */
if (rb0 < rstart || rb0 >= rend)
@@ -1406,6 +1410,10 @@ hashjoin(BAT *r1, BAT *r2, BAT *l, BAT *
#if SIZEOF_WRD == SIZEOF_LNG
case TYPE_wrd:
#endif
+ if (!nil_matches && *(const lng*)v ==
lng_nil) {
+ lskipped = BATcount(r1) > 0;
+ continue;
+ }
HASHloop_lng(ri, r->H->hash, rb, v) {
rb0 = rb - BUNfirst(r); /*
zero-based */
if (rb0 < rstart || rb0 >= rend)
@@ -1417,6 +1425,10 @@ hashjoin(BAT *r1, BAT *r2, BAT *l, BAT *
}
break;
default:
+ if (!nil_matches && cmp(v, nil) == 0) {
+ lskipped = BATcount(r1) > 0;
+ continue;
+ }
HASHloop(ri, r->H->hash, rb, v) {
rb0 = rb - BUNfirst(r); /*
zero-based */
if (rb0 < rstart || rb0 >= rend)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list