Changeset: df505eb24c66 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=df505eb24c66 Added Files: sql/test/Users/Tests/copyinto.SQL.py Removed Files: gdk/gdk_join_legacy.c gdk/gdk_select_legacy.c Modified Files: clients/Tests/MAL-signatures.stable.out clients/Tests/MAL-signatures.stable.out.int128 clients/Tests/exports.stable.out gdk/ChangeLog gdk/Makefile.ag gdk/gdk.h gdk/gdk_align.c gdk/gdk_bat.c gdk/gdk_batop.c gdk/gdk_private.h monetdb5/extras/rapi/Tests/rapi08.malC monetdb5/extras/sphinx/sphinx.c monetdb5/mal/Tests/tst077.mal monetdb5/mal/Tests/tst077.stable.out monetdb5/mal/Tests/tst104.mal monetdb5/mal/Tests/tst104.stable.out monetdb5/mal/Tests/tst105.mal monetdb5/mal/Tests/tst105.stable.out monetdb5/mal/Tests/tst105a.mal monetdb5/mal/Tests/tst105a.stable.out monetdb5/mal/Tests/tst106.mal monetdb5/mal/Tests/tst106.stable.out monetdb5/mal/Tests/tst150.mal monetdb5/mal/Tests/tst150.stable.out monetdb5/mal/Tests/tst220.mal monetdb5/mal/Tests/tst220.stable.out monetdb5/mal/Tests/tst233.mal monetdb5/mal/Tests/tst233.stable.out monetdb5/mal/Tests/tst234.mal monetdb5/mal/Tests/tst234.stable.out monetdb5/mal/Tests/tst750.mal monetdb5/mal/Tests/tst750.stable.out monetdb5/mal/Tests/tst755.mal monetdb5/mal/Tests/tst755.stable.out monetdb5/mal/Tests/tst760.mal monetdb5/mal/Tests/tst760.stable.out monetdb5/mal/Tests/tst770.mal monetdb5/mal/Tests/tst770.stable.out monetdb5/mal/Tests/tst802.mal monetdb5/mal/Tests/tst802.stable.out monetdb5/mal/Tests/tst908.mal monetdb5/mal/Tests/tst908.stable.out monetdb5/mal/mal_parser.c monetdb5/modules/kernel/algebra.c monetdb5/modules/kernel/algebra.h monetdb5/modules/kernel/batcolor.c monetdb5/modules/kernel/batstr.c monetdb5/modules/mal/Tests/remoteInit.mal monetdb5/modules/mal/Tests/remoteInit.stable.out monetdb5/modules/mal/mal_mapi.mal monetdb5/modules/mal/tablet.c monetdb5/optimizer/Tests/remap.mal monetdb5/optimizer/Tests/remap.stable.out monetdb5/optimizer/Tests/tst4630.mal monetdb5/optimizer/Tests/tst4630.stable.out monetdb5/tests/BugReports/Tests/gettype_in_function.mal monetdb5/tests/BugReports/Tests/gettype_in_function.stable.out monetdb5/tests/BugReports/Tests/no.163.mal monetdb5/tests/BugReports/Tests/no.163.stable.out sql/backends/monet5/sql.c sql/include/sql_catalog.h sql/server/rel_schema.c sql/server/rel_updates.c sql/server/sql_parser.y sql/server/sql_privileges.c sql/server/sql_privileges.h sql/test/Users/Tests/All Branch: leftmart Log Message:
Merge with default diffs (truncated from 2563 to 300 lines): diff --git a/clients/Tests/MAL-signatures.stable.out b/clients/Tests/MAL-signatures.stable.out --- a/clients/Tests/MAL-signatures.stable.out +++ b/clients/Tests/MAL-signatures.stable.out @@ -38725,7 +38725,7 @@ command mapi.fetch_line(hdl:int):str address SERVERfetch_line; comment Retrieve a complete line. -command mapi.fetch_field_array(hdl:int):bat[:int,:str] +command mapi.fetch_field_array(hdl:int):bat[:oid,:str] address SERVERfetch_field_bat; comment Retrieve all fields for a row. diff --git a/clients/Tests/MAL-signatures.stable.out.int128 b/clients/Tests/MAL-signatures.stable.out.int128 --- a/clients/Tests/MAL-signatures.stable.out.int128 +++ b/clients/Tests/MAL-signatures.stable.out.int128 @@ -49652,7 +49652,7 @@ command mapi.fetch_line(hdl:int):str address SERVERfetch_line; comment Retrieve a complete line. -command mapi.fetch_field_array(hdl:int):bat[:int,:str] +command mapi.fetch_field_array(hdl:int):bat[:oid,:str] address SERVERfetch_field_bat; comment Retrieve all fields for a row. 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 @@ -161,9 +161,6 @@ gdk_return BATreplace(BAT *b, BAT *p, BA void BATroles(BAT *b, const char *hnme, const char *tnme); BAT *BATsample(BAT *b, BUN n); gdk_return BATsave(BAT *b); -BAT *BATselect(BAT *b, const void *tl, const void *th); -BAT *BATselect_(BAT *b, const void *tl, const void *th, bit li, bit hi); -BAT *BATsemijoin(BAT *l, BAT *r); void BATseqbase(BAT *b, oid o); gdk_return BATsetaccess(BAT *b, int mode); void BATsetcapacity(BAT *b, BUN cnt); @@ -213,7 +210,6 @@ void BBPunlock(const char *s); gdk_return BUNappend(BAT *b, const void *right, bit force); gdk_return BUNdel(BAT *b, const void *left, const void *right, bit force); BUN BUNdelete(BAT *b, BUN p, bit force); -gdk_return BUNfastins(BAT *b, const void *left, const void *right); BUN BUNfnd(BAT *b, const void *right); gdk_return BUNinplace(BAT *b, BUN p, const void *left, const void *right, bit force); gdk_return BUNreplace(BAT *b, const void *left, const void *right, bit force); @@ -730,7 +726,6 @@ str ALGrangejoin2(bat *l, bat *r, const str ALGreuse(bat *ret, const bat *bid); str ALGsample(bat *result, const bat *bid, const int *param); str ALGselectNotNil(bat *result, const bat *bid); -str ALGsemijoin(bat *result, const bat *lid, const bat *rid); str ALGslice(bat *ret, const bat *bid, const lng *start, const lng *end); str ALGslice_int(bat *ret, const bat *bid, const int *start, const int *end); str ALGslice_oid(bat *ret, const bat *bid, const oid *start, const oid *end); diff --git a/gdk/ChangeLog b/gdk/ChangeLog --- a/gdk/ChangeLog +++ b/gdk/ChangeLog @@ -2,6 +2,8 @@ # This file is updated with Maddlog * Wed Sep 16 2015 Sjoerd Mullender <sjo...@acm.org> +- Removed BATselect. Use BATsubselect instead. +- Removed BATsemijoin. Use BATsubsemijoin instead. - Removed BATjoin. Use BATsubjoin instead. - Removed BATleftjoin. Use BATsubleftjoin or BATproject instead. - Removed BATleftfetchjoin. Use BATproject instead. diff --git a/gdk/Makefile.ag b/gdk/Makefile.ag --- a/gdk/Makefile.ag +++ b/gdk/Makefile.ag @@ -13,7 +13,7 @@ lib_gdk = { NAME = bat SOURCES = \ gdk.h gdk_cand.h gdk_atomic.h gdk_batop.c \ - gdk_select.c gdk_select_legacy.c \ + gdk_select.c \ gdk_search.c gdk_search.h gdk_tm.c \ gdk_align.c gdk_bbp.c gdk_bbp.h \ gdk_heap.c gdk_setop.c gdk_utils.c gdk_utils.h \ @@ -27,7 +27,7 @@ lib_gdk = { gdk_calc.c gdk_calc.h gdk_calc_compare.h gdk_calc_private.h \ gdk_aggr.c gdk_group.c gdk_mapreduce.c gdk_mapreduce.h \ gdk_imprints.c gdk_imprints.h \ - gdk_join.c gdk_join_legacy.c \ + gdk_join.c \ gdk_unique.c \ gdk_firstn.c \ bat.feps bat1.feps bat2.feps \ diff --git a/gdk/gdk.h b/gdk/gdk.h --- a/gdk/gdk.h +++ b/gdk/gdk.h @@ -1120,11 +1120,6 @@ gdk_export bte ATOMelmshift(int sz); * can use BUNins, BUNappend, BUNreplace, and BUNdel. The * batch update operations are BATins, BATappend and BATdel. * - * Only experts interested in speed may use BUNfastins, since it skips - * most consistency checks, does not update search accelerators, and - * does not maintain properties such as the hsorted and tsorted - * flags. Beware! - * * The routine BUNfnd provides fast access to a single BUN providing a * value for the tail of the binary association. * @@ -1190,7 +1185,6 @@ gdk_export bte ATOMelmshift(int sz); ATOMputFIX((b)->HT->type, (p), v); \ } \ } while (0) -#define Hputvalue(b, p, v, copyall) HTputvalue(b, p, v, copyall, H) #define Tputvalue(b, p, v, copyall) HTputvalue(b, p, v, copyall, T) #define HTreplacevalue(b, p, v, HT) \ do { \ @@ -1238,7 +1232,6 @@ gdk_export bte ATOMelmshift(int sz); ATOMreplaceFIX((b)->HT->type, (p), v); \ } \ } while (0) -#define Hreplacevalue(b, p, v) HTreplacevalue(b, p, v, H) #define Treplacevalue(b, p, v) HTreplacevalue(b, p, v, T) #define HTfastins_nocheck(b, p, v, s, HT) \ do { \ @@ -1246,36 +1239,8 @@ gdk_export bte ATOMelmshift(int sz); (b)->HT->heap.free += (s); \ HTputvalue((b), HT##loc((b), (p)), (v), 0, HT); \ } while (0) -#define hfastins_nocheck(b, p, v, s) HTfastins_nocheck(b, p, v, s, H) #define tfastins_nocheck(b, p, v, s) HTfastins_nocheck(b, p, v, s, T) -#define bunfastins_nocheck(b, p, h, t, hs, ts) \ - do { \ - hfastins_nocheck(b, p, h, hs); \ - tfastins_nocheck(b, p, t, ts); \ - (b)->batCount++; \ - } while (0) - -#define bunfastins_nocheck_inc(b, p, h, t) \ - do { \ - bunfastins_nocheck(b, p, h, t, Hsize(b), Tsize(b)); \ - p++; \ - } while (0) - -#define bunfastins(b, h, t) \ - do { \ - register BUN _p = BUNlast(b); \ - if (_p >= BATcapacity(b)) { \ - if (_p == BUN_MAX || BATcount(b) == BUN_MAX) { \ - GDKerror("bunfastins: too many elements to accomodate (" BUNFMT ")\n", BUN_MAX); \ - goto bunins_failed; \ - } \ - if (BATextend((b), BATgrows(b)) != GDK_SUCCEED) \ - goto bunins_failed; \ - } \ - bunfastins_nocheck(b, _p, h, t, Hsize(b), Tsize(b)); \ - } while (0) - #define bunfastapp_nocheck(b, p, t, ts) \ do { \ tfastins_nocheck(b, p, t, ts); \ @@ -1304,7 +1269,6 @@ gdk_export bte ATOMelmshift(int sz); } while (0) gdk_export gdk_return GDKupgradevarheap(COLrec *c, var_t v, int copyall, int mayshare); -gdk_export gdk_return BUNfastins(BAT *b, const void *left, const void *right); gdk_export gdk_return BUNappend(BAT *b, const void *right, bit force); gdk_export gdk_return BATins(BAT *b, BAT *c, bit force); gdk_export gdk_return BATappend(BAT *b, BAT *c, bit force); @@ -3072,28 +3036,6 @@ gdk_export void BATsetprop(BAT *b, int i /* * @- BAT relational operators - * @multitable @columnfractions 0.08 0.7 - * @item BAT * - * @tab BATsemijoin (BAT *l, BAT *r) - * @item BAT * - * @tab BATselect (BAT *b, ptr tl, ptr th) - * @item BAT * - * @tab BATfragment (BAT *b, ptr l, ptr h, ptr L, ptr H) - * @item - * @item BAT * - * @tab BATkdiff (BAT *b, BAT *c) - * @end multitable - * - * The BAT library comes with a full-fledged collection of relational - * operators. The two selection operators BATselect and BATfragment - * produce a partial copy of the BAT. The former performs a search on - * the tail; the latter considers both dimensions. The BATselect - * operation takes two inclusive ranges as search arguments. - * Interpretation of a NULL argument depends on the position, i.e. a - * domain lower or upper bound. - * - * 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 @@ -3116,12 +3058,9 @@ gdk_export void BATsetprop(BAT *b, int i gdk_export BAT *BATsubselect(BAT *b, BAT *s, const void *tl, const void *th, int li, int hi, int anti); gdk_export BAT *BATthetasubselect(BAT *b, BAT *s, const void *val, const char *op); -gdk_export BAT *BATselect_(BAT *b, const void *tl, const void *th, bit li, bit hi); -gdk_export BAT *BATselect(BAT *b, const void *tl, const void *th); 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 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); @@ -3165,48 +3104,4 @@ gdk_export BAT *BATsample(BAT *b, BUN n) */ #define MAXPARAMS 32 -#ifndef NDEBUG -#ifdef __GNUC__ -/* in debug builds, complain (warn) about usage of legacy functions */ - -#define _COL_TYPE(c) ((c)->type == TYPE_void ? \ - (c)->seq == oid_nil ? "nil" : "void" : \ - (c)->type == TYPE_oid ? \ - (c)->dense ? "dense" : "oid" : \ - ATOMname((c)->type)) - -#define BATselect_(b, h, t, li, hi) \ - ({ \ - BAT *_b = (b); \ - HEADLESSDEBUG fprintf(stderr, \ - "#BATselect_([%s,%s]#"BUNFMT") %s[%s:%d]\n", \ - _COL_TYPE(_b->H), _COL_TYPE(_b->T), BATcount(_b), \ - __func__, __FILE__, __LINE__); \ - BATselect_(_b, (h), (t), (li), (hi)); \ - }) - -#define BATselect(b, h, t) \ - ({ \ - BAT *_b = (b); \ - HEADLESSDEBUG fprintf(stderr, \ - "#BATselect([%s,%s]#"BUNFMT") %s[%s:%d]\n", \ - _COL_TYPE(_b->H), _COL_TYPE(_b->T), BATcount(_b), \ - __func__, __FILE__, __LINE__); \ - BATselect(_b, (h), (t)); \ - }) - -#define BATsemijoin(l, r) \ - ({ \ - BAT *_l = (l), *_r = (r); \ - HEADLESSDEBUG fprintf(stderr, \ - "#BATsemijoin([%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__); \ - BATsemijoin(_l, _r); \ - }) - -#endif -#endif - #endif /* _GDK_H_ */ diff --git a/gdk/gdk_align.c b/gdk/gdk_align.c --- a/gdk/gdk_align.c +++ b/gdk/gdk_align.c @@ -27,8 +27,7 @@ * (likewise, @emph{BATcopy()}, which makes a copy, instead of * in-place shuffling, has the same alignment effect, @emph{BATmark()} * marks the tail column as synced with the head of the original - * @emph{BAT}, and for instance @emph{BATsemijoin()} marks both return - * columns as aligned with its left parameter). + * @emph{BAT}). * * Each alignment sequence is given a unique identifier, so as to * easily detect this situation. It is retained in the @emph{BAT diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c --- a/gdk/gdk_bat.c +++ b/gdk/gdk_bat.c @@ -1006,28 +1006,6 @@ BATcopy(BAT *b, int ht, int tt, int writ un_move(tmpp, Tloc(b, p), ts); \ } while (0) -/* - * @- BUN Insertion - * Insertion into a BAT is split into two operations BUNins and - * BUNfastins. The former should be used when integrity enforcement - * and index maintenance is required. The latter is used to quickly - * insert the BUN into the result without any additional check. For - * those cases where speed is required, the type decoding can be - * circumvented by asking for a BUN using BATbunalloc and fill it - * directly. See gdk.mx for the bunfastins(b,h,t) macros. - */ -gdk_return -BUNfastins(BAT *b, const void *h, const void *t) -{ - bunfastins(b, h, t); - if (!b->batDirty) - b->batDirty = TRUE; - return GDK_SUCCEED; - bunins_failed: - return GDK_FAIL; -} - - static void setcolprops(BAT *b, COLrec *col, const void *x) { diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c --- a/gdk/gdk_batop.c _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list