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