Changeset: 5eb419131bbc for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5eb419131bbc
Modified Files:
        gdk/gdk_unique.c
Branch: default
Log Message:

performance fix in BATsubunique (used heavily by imprints),
in subunique(b,s), when s is much smaller than b, first project(s,b)
then subunique this, return the backprojected oids.


diffs (19 lines):

diff --git a/gdk/gdk_unique.c b/gdk/gdk_unique.c
--- a/gdk/gdk_unique.c
+++ b/gdk/gdk_unique.c
@@ -96,6 +96,15 @@ BATsubunique(BAT *b, BAT *s)
                return bn;
        }
 
+       if (cand && BATcount(b) > 16 * BATcount(s)) {
+               BAT *nb = BATproject(s, b); 
+               BAT *r = BATsubunique(nb, 0);
+               BAT *nr = BATproject(r, s);
+               BBPunfix(nb->batCacheid);
+               BBPunfix(r->batCacheid);
+               return nr;
+       }
+
        assert(b->ttype != TYPE_void);
 
        bn = BATnew(TYPE_void, TYPE_oid, 1024);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to