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