Changeset: 6a64d50ec5c7 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6a64d50ec5c7 Modified Files: clients/Tests/exports.stable.out gdk/ChangeLog gdk/gdk.h gdk/gdk_join_legacy.c Branch: default Log Message:
Removed BATjoin. diffs (176 lines): diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out --- a/clients/Tests/exports.stable.out +++ b/clients/Tests/exports.stable.out @@ -137,7 +137,6 @@ gdk_return BAThash(BAT *b, BUN masksize) gdk_return BATimprints(BAT *b); gdk_return BATins(BAT *b, BAT *c, bit force); BAT *BATintersectcand(BAT *a, BAT *b); -BAT *BATjoin(BAT *l, BAT *r, BUN estimate); gdk_return BATkey(BAT *b, int onoff); BAT *BATmark(BAT *b, oid base); BAT *BATmark_grp(BAT *b, BAT *g, const oid *base); diff --git a/gdk/ChangeLog b/gdk/ChangeLog --- a/gdk/ChangeLog +++ b/gdk/ChangeLog @@ -2,6 +2,7 @@ # This file is updated with Maddlog * Wed Sep 16 2015 Sjoerd Mullender <sjo...@acm.org> +- Removed BATjoin. Use BATsubjoin instead. - Removed BATleftjoin. Use BATsubleftjoin or BATproject instead. - Removed BATleftfetchjoin. Use BATproject instead. - Removed BUNins from the list of exported functions. diff --git a/gdk/gdk.h b/gdk/gdk.h --- a/gdk/gdk.h +++ b/gdk/gdk.h @@ -3065,9 +3065,7 @@ gdk_export void BATsetprop(BAT *b, int i * @- BAT relational operators * @multitable @columnfractions 0.08 0.7 * @item BAT * - * @tab BATjoin (BAT *l, BAT *r, BUN estimate) - * @item BAT * - * @tab BATsemijoin (BAT *l, BAT *r) + * @tab BATsemijoin (BAT *l, BAT *r) * @item BAT * * @tab BATselect (BAT *b, ptr tl, ptr th) * @item BAT * @@ -3085,10 +3083,8 @@ gdk_export void BATsetprop(BAT *b, int i * Interpretation of a NULL argument depends on the position, i.e. a * domain lower or upper bound. * - * The BATjoin over R[A, B] and S[C, D] performs an equi-join over B - * and C. It results in a BAT over A and D. The BATsemijoin over R[A, - * B] and S[C, D] produces the subset of R[A, B] that satisfies the - * semijoin over A and C. + * The BATsemijoin over R[A, B] and S[C, D] produces the subset of + * R[A, B] that satisfies the semijoin over A and C. * * The full-materialization policy intermediate results in MonetDB * means that a join can produce an arbitrarily large result and choke @@ -3117,7 +3113,6 @@ gdk_export BAT *BATselect(BAT *b, const gdk_export BAT *BATconstant(int tt, const void *val, BUN cnt, int role); gdk_export BAT *BATconst(BAT *l, int tt, const void *val, int role); gdk_export BAT *BATsemijoin(BAT *l, BAT *r); -gdk_export BAT *BATjoin(BAT *l, BAT *r, BUN estimate); gdk_export gdk_return BATcross1(BAT **r1p, BAT **r2p, BAT *l, BAT *r); gdk_export gdk_return BATsubcross(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr); @@ -3202,17 +3197,6 @@ gdk_export BAT *BATsample(BAT *b, BUN n) BATsemijoin(_l, _r); \ }) -#define BATjoin(l, r, estimate) \ - ({ \ - BAT *_l = (l), *_r = (r); \ - HEADLESSDEBUG fprintf(stderr, \ - "#BATjoin([%s,%s]#"BUNFMT",[%s,%s]#"BUNFMT") %s[%s:%d]\n", \ - _COL_TYPE(_l->H), _COL_TYPE(_l->T), BATcount(_l), \ - _COL_TYPE(_r->H), _COL_TYPE(_r->T), BATcount(_r), \ - __func__, __FILE__, __LINE__); \ - BATjoin(_l, _r, (estimate)); \ - }) - #endif #endif diff --git a/gdk/gdk_join_legacy.c b/gdk/gdk_join_legacy.c --- a/gdk/gdk_join_legacy.c +++ b/gdk/gdk_join_legacy.c @@ -13,7 +13,6 @@ /* This file contains the legacy interface to the join functions */ #undef BATsemijoin -#undef BATjoin /* Return a subset of l where head elements occur as head element in r. */ BAT * @@ -101,89 +100,3 @@ BATsemijoin(BAT *l, BAT *r) BBPunfix(res2->batCacheid); return bn; } - -static BAT * -do_batjoin(BAT *l, BAT *r, BUN estimate, - gdk_return (*joinfunc)(BAT **, BAT **, BAT *, BAT *, BAT *, BAT *, - int, BUN), - - const char *name) -{ - BAT *lmap, *rmap; - BAT *res1, *res2; - BAT *bn; - gdk_return ret; - - ALGODEBUG fprintf(stderr, "#Legacy %s(l=%s#"BUNFMT"[%s,%s]%s%s%s," - "r=%s#" BUNFMT "[%s,%s]%s%s%s)\n", name, - BATgetId(l), BATcount(l), - ATOMname(l->htype), ATOMname(l->ttype), - BAThdense(l) ? "-hdense" : "", - l->tsorted ? "-sorted" : "", - l->trevsorted ? "-revsorted" : "", - BATgetId(r), BATcount(r), - ATOMname(r->htype), ATOMname(r->ttype), - BAThdense(r) ? "-hdense" : "", - r->tsorted ? "-sorted" : "", - r->trevsorted ? "-revsorted" : ""); - r = BATmirror(r); - /* r is [any_3,any_2] */ - if (!BAThdense(l) || !BAThdense(r)) { - /* l is [any_1,any_2] */ - lmap = BATmirror(BATmark(l, 0)); - /* lmap is [dense1,any_1] */ - l = BATmirror(BATmark(BATmirror(l), 0)); - /* l is [dense1,any_2] */ - /* r is [any_3,any_2] */ - rmap = BATmirror(BATmark(r, 0)); - /* rmap is [dense2,any_3] */ - r = BATmirror(BATmark(BATmirror(r), 0)); - /* r is [dense2,any_2] */ - } else { - /* l is [dense1,any_2] */ - lmap = NULL; - BBPfix(l->batCacheid); - /* r is [dense2,any_2] */ - rmap = NULL; - BBPfix(r->batCacheid); - } - ret = (*joinfunc)(&res1, &res2, l, r, NULL, NULL, 0, estimate); - if (ret != GDK_SUCCEED) { - BBPunfix(l->batCacheid); - BBPunfix(r->batCacheid); - if (lmap) - BBPunfix(lmap->batCacheid); - if (rmap) - BBPunfix(rmap->batCacheid); - return NULL; - } - if (lmap) { - bn = BATproject(res1, lmap); - BBPunfix(res1->batCacheid); - BBPunfix(lmap->batCacheid); - res1 = bn; - /* res1 is [dense,any_1] */ - lmap = NULL; - bn = BATproject(res2, rmap); - BBPunfix(res2->batCacheid); - BBPunfix(rmap->batCacheid); - res2 = bn; - /* res2 is [dense,any_3] */ - rmap = NULL; - } - bn = VIEWcreate(BATmirror(res1), res2); - /* bn is [any_1,any_3] */ - BBPunfix(l->batCacheid); - BBPunfix(r->batCacheid); - BBPunfix(res1->batCacheid); - BBPunfix(res2->batCacheid); - return bn; -} - -/* join [any_1,any_2] with [any_2,any_3], return [any_1,any_3] */ -BAT * -BATjoin(BAT *l, BAT *r, BUN estimate) -{ - return do_batjoin(l, r, estimate, - BATsubjoin, "BATjoin"); -} _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list