Changeset: f31185853312 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f31185853312 Modified Files: gdk/gdk_rangejoin.c Branch: headless Log Message:
If either range value in bandjoin is nil, it means infinity.
diffs (55 lines):
diff --git a/gdk/gdk_rangejoin.c b/gdk/gdk_rangejoin.c
--- a/gdk/gdk_rangejoin.c
+++ b/gdk/gdk_rangejoin.c
@@ -174,8 +174,10 @@
x2 = COLget_TYPE(r, v, TYPE); \
if (x2 == TYPE##_nil) \
continue; \
- if (x1 >= x2 - cc1 && \
- x1 <= x2 + cc2) { \
+ if ((cc1 == TYPE##_nil || \
+ x1 >= x2 - cc1) && \
+ (cc2 == TYPE##_nil || \
+ x1 <= x2 + cc2)) { \
bunfastins_oid(bn1, p); \
bunfastins_oid(bn2, v); \
} \
@@ -185,8 +187,10 @@
x2 = COLget_TYPE(r, v, TYPE); \
if (x2 == TYPE##_nil) \
continue; \
- if (x1 >= x2 - cc1 && \
- x1 < x2 + cc2) { \
+ if ((cc1 == TYPE##_nil || \
+ x1 >= x2 - cc1) && \
+ (cc2 == TYPE##_nil || \
+ x1 < x2 + cc2)) { \
bunfastins_oid(bn1, p); \
bunfastins_oid(bn2, v); \
} \
@@ -196,8 +200,10 @@
x2 = COLget_TYPE(r, v, TYPE); \
if (x2 == TYPE##_nil) \
continue; \
- if (x1 > x2 - cc1 && \
- x1 <= x2 + cc2) { \
+ if ((cc1 == TYPE##_nil || \
+ x1 > x2 - cc1) && \
+ (cc2 == TYPE##_nil || \
+ x1 <= x2 + cc2)) { \
bunfastins_oid(bn1, p); \
bunfastins_oid(bn2, v); \
} \
@@ -207,8 +213,10 @@
x2 = COLget_TYPE(r, v, TYPE); \
if (x2 == TYPE##_nil) \
continue; \
- if (x1 > x2 - cc1 && \
- x1 < x2 + cc2) { \
+ if ((cc1 == TYPE##_nil || \
+ x1 > x2 - cc1) && \
+ (cc2 == TYPE##_nil || \
+ x1 < x2 + cc2)) { \
bunfastins_oid(bn1, p); \
bunfastins_oid(bn2, v); \
} \
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list
