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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list