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

Reply via email to