Changeset: ae4f1bbf2ec2 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ae4f1bbf2ec2
Modified Files:
        gdk/gdk.h
        gdk/gdk_hash.h
        gdk/gdk_unique.c
        monetdb5/modules/atoms/mtime.c
        sql/rel.txt
Branch: linear-hashing
Log Message:

Merge with Nov2019 branch.


diffs (54 lines):

diff --git a/gdk/gdk_hash.h b/gdk/gdk_hash.h
--- a/gdk/gdk_hash.h
+++ b/gdk/gdk_hash.h
@@ -220,6 +220,15 @@ HASHgetlink(Hash *h, BUN i)
             hb = HASHgetlink(h,hb))                                    \
                if (* (const TYPE *) (v) == * (const TYPE *) BUNtloc(bi, hb))
 
+/* need to take special care comparing nil floating point values */
+#define HASHloop_fTYPE(bi, h, hb, v, TYPE)                             \
+       for (hb = HASHget(h, hash_##TYPE(h, v));                       \
+            hb != HASHnil(h);                                         \
+            hb = HASHgetlink(h,hb))                                   \
+               if (is_##TYPE##_nil(* (const TYPE *) (v))              \
+                   ? is_##TYPE##_nil(* (const TYPE *) BUNtloc(bi, hb)) \
+                   : * (const TYPE *) (v) == * (const TYPE *) BUNtloc(bi, hb))
+
 #define HASHloop_bte(bi, h, hb, v)     HASHloop_TYPE(bi, h, hb, v, bte)
 #define HASHloop_sht(bi, h, hb, v)     HASHloop_TYPE(bi, h, hb, v, sht)
 #define HASHloop_int(bi, h, hb, v)     HASHloop_TYPE(bi, h, hb, v, int)
@@ -227,8 +236,8 @@ HASHgetlink(Hash *h, BUN i)
 #ifdef HAVE_HGE
 #define HASHloop_hge(bi, h, hb, v)     HASHloop_TYPE(bi, h, hb, v, hge)
 #endif
-#define HASHloop_flt(bi, h, hb, v)     HASHloop_TYPE(bi, h, hb, v, flt)
-#define HASHloop_dbl(bi, h, hb, v)     HASHloop_TYPE(bi, h, hb, v, dbl)
+#define HASHloop_flt(bi, h, hb, v)     HASHloop_fTYPE(bi, h, hb, v, flt)
+#define HASHloop_dbl(bi, h, hb, v)     HASHloop_fTYPE(bi, h, hb, v, dbl)
 
 #define HASHfnd_str(x,y,z)                                             \
        do {                                                            \
diff --git a/gdk/gdk_unique.c b/gdk/gdk_unique.c
--- a/gdk/gdk_unique.c
+++ b/gdk/gdk_unique.c
@@ -155,6 +155,7 @@ BATunique(BAT *b, BAT *s)
                seen = NULL;
        } else if (BATcheckhash(b) ||
                   (!b->batTransient &&
+                   cnt == BATcount(b) &&
                    BAThash(b) == GDK_SUCCEED) ||
                   ((parent = VIEWtparent(b)) != 0 &&
                    BATcheckhash(BBPdescriptor(parent)))) {
diff --git a/sql/rel.txt b/sql/rel.txt
--- a/sql/rel.txt
+++ b/sql/rel.txt
@@ -137,9 +137,6 @@ e_cmp
                        cmp_joined = 17,                /* special case already 
joined */
                        cmp_left = 18,                  /* special case equi 
join, keep left order */
                        cmp_left_project = 19   /* last step of outer join */
-
-                       cmp_all = 14,           cross product
-                       cmp_project = 15,       special case for projection 
joins
                )
 
 e_func
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to