Changeset: 9072e2335418 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9072e2335418 Modified Files: clients/Tests/MAL-signatures.stable.out clients/Tests/MAL-signatures.stable.out.int128 clients/Tests/exports.stable.out gdk/ChangeLog gdk/gdk.h gdk/gdk_align.c gdk/gdk_bat.c gdk/gdk_batop.c gdk/gdk_bbp.c gdk/gdk_delta.c gdk/gdk_logger.c gdk/gdk_private.h gdk/gdk_select.c gdk/gdk_storage.c monetdb5/ChangeLog monetdb5/mal/mal_authorize.c monetdb5/mal/mal_debugger.c monetdb5/modules/atoms/batxml.c monetdb5/modules/atoms/mtime.c monetdb5/modules/kernel/algebra.c monetdb5/modules/kernel/bat5.c monetdb5/modules/kernel/bat5.h monetdb5/modules/kernel/bat5.mal monetdb5/modules/mal/Tests/inspect05.stable.out.int128 monetdb5/modules/mal/iterator.c monetdb5/modules/mal/mal_io.c monetdb5/modules/mal/mkey.c monetdb5/modules/mal/pcre.c monetdb5/modules/mal/tokenizer.c monetdb5/modules/mal/zorder.c sql/backends/monet5/gsl/gsl.c sql/backends/monet5/sql.c sql/backends/monet5/sql_bat2time.c sql/backends/monet5/sql_cast.c sql/backends/monet5/sql_cast_impl_down_from_flt.h sql/backends/monet5/sql_cast_impl_down_from_int.h sql/backends/monet5/sql_cast_impl_up_to_flt.h sql/backends/monet5/sql_cast_impl_up_to_int.h sql/backends/monet5/sql_round_impl.h sql/storage/bat/bat_table.c sql/test/leaks/Tests/check1.stable.out sql/test/leaks/Tests/check1.stable.out.int128 sql/test/leaks/Tests/check2.stable.out sql/test/leaks/Tests/check2.stable.out.int128 sql/test/leaks/Tests/check3.stable.out sql/test/leaks/Tests/check3.stable.out.int128 sql/test/leaks/Tests/check4.stable.out sql/test/leaks/Tests/check4.stable.out.int128 sql/test/leaks/Tests/check5.stable.out sql/test/leaks/Tests/check5.stable.out.int128 Branch: default Log Message:
Massive cleanup: removed lots of code dealing with non-dense head columns. This includes removal of insert and delete functions. See gdk/ChangeLog and monetdb5/ChangeLog. diffs (truncated from 5109 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 @@ -30848,14 +30848,6 @@ command bat.delete(b:bat[:oid,:any_1]):b address BKCdelete_all; comment Delete all entries. -command bat.delete(b:bat[:oid,:any_1],h:oid):bat[:oid,:any_1] -address BKCdelete; -comment Delete an entry with a certain head value. - -command bat.delete(b:bat[:oid,:any_1],src:bat[:oid,:any_1]):bat[:oid,:any_1] -address BKCdelete_bat_bun; -comment Delete from the first BAT all BUNs with a corresponding BUN in the second. - command bat.getName(b:bat[:oid,:any_1]):str address BKCgetBBPname; comment Gives back the logical name of a BAT. 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 @@ -39817,14 +39817,6 @@ command bat.delete(b:bat[:oid,:any_1]):b address BKCdelete_all; comment Delete all entries. -command bat.delete(b:bat[:oid,:any_1],h:oid):bat[:oid,:any_1] -address BKCdelete; -comment Delete an entry with a certain head value. - -command bat.delete(b:bat[:oid,:any_1],src:bat[:oid,:any_1]):bat[:oid,:any_1] -address BKCdelete_bat_bun; -comment Delete from the first BAT all BUNs with a corresponding BUN in the second. - command bat.getName(b:bat[:oid,:any_1]):str address BKCgetBBPname; comment Gives back the logical name of a BAT. 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 @@ -107,8 +107,8 @@ BAT *BATconst(BAT *l, int tt, const void BAT *BATconstant(int tt, const void *val, BUN cnt, int role); BAT *BATconvert(BAT *b, BAT *s, int tp, int abort_on_error); BUN BATcount_no_nil(BAT *b); -gdk_return BATdel(BAT *b, BAT *c, bit force); BAT *BATdelta(BAT *b); +BAT *BATdense(oid hseq, oid tseq, BUN cnt) __attribute__((warn_unused_result)); void BATderiveHeadProps(BAT *b, int expensive); void BATderiveProps(BAT *b, int expensive); BAT *BATdiff(BAT *l, BAT *r, BAT *sl, BAT *sr, int nil_matches, BUN estimate); @@ -135,13 +135,10 @@ BAT *BATgroupvariance_sample(BAT *b, BAT BUN BATgrows(BAT *b); 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); gdk_return BATjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, int nil_matches, BUN estimate); gdk_return BATkey(BAT *b, int onoff); gdk_return BATleftjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, int nil_matches, BUN estimate); -BAT *BATmark(BAT *b, oid base); -BAT *BATmark_grp(BAT *b, BAT *g, const oid *base); void *BATmax(BAT *b, void *aggr); size_t BATmemsize(BAT *b, int dirty); BAT *BATmergecand(BAT *a, BAT *b); @@ -205,10 +202,8 @@ void BBPshare(bat b); gdk_return BBPsync(int cnt, bat *subcommit); 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); BUN BUNfnd(BAT *b, const void *right); -gdk_return BUNinplace(BAT *b, BUN p, const void *left, const void *right, bit force); +gdk_return BUNinplace(BAT *b, BUN p, const void *right, bit force); gdk_return BUNreplace(BAT *b, const void *left, const void *right, bit force); BAT *COLcopy(BAT *b, int tt, int writeable, int role); size_t GDK_mem_maxsize; @@ -338,9 +333,8 @@ gdk_return VARcalcsub(ValPtr ret, const gdk_return VARcalcxor(ValPtr ret, const ValRecord *lft, const ValRecord *rgt); gdk_return VARconvert(ValPtr ret, const ValRecord *v, int abort_on_error); void VIEWbounds(BAT *b, BAT *view, BUN l, BUN h); -BAT *VIEWcombine(BAT *b); -BAT *VIEWcreate(BAT *h, BAT *t); -BAT *VIEWcreate_(BAT *h, BAT *t, int stable); +BAT *VIEWcreate(oid seq, BAT *b); +BAT *VIEWcreate_(oid seq, BAT *b, int stable); size_t _MT_npages; size_t _MT_pagesize; int batFromStr(const char *src, int *len, bat **dst); @@ -769,10 +763,7 @@ str BKCbat_inplace(bat *r, const bat *bi str BKCbat_inplace_force(bat *r, const bat *bid, const bat *rid, const bat *uid, const bit *force); str BKCbun_inplace(bat *r, const bat *bid, const oid *id, const void *t); str BKCbun_inplace_force(bat *r, const bat *bid, const oid *id, const void *t, const bit *force); -char *BKCdelete(bat *r, const bat *bid, const oid *h); str BKCdelete_all(bat *r, const bat *bid); -str BKCdelete_bat_bun(bat *r, const bat *bid, const bat *sid); -char *BKCdelete_bun(bat *r, const bat *bid, const oid *h, const void *t); str BKCdensebat(bat *ret, const wrd *size); str BKCgetAccess(str *res, const bat *bid); str BKCgetBBPname(str *ret, const bat *bid); @@ -783,8 +774,6 @@ str BKCgetRole(str *res, const bat *bid) str BKCgetSequenceBase(oid *r, const bat *bid); str BKCgetSize(lng *tot, const bat *bid); str BKCinfo(bat *ret1, bat *ret2, const bat *bid); -str BKCinsert_bat(bat *r, const bat *bid, const bat *sid); -str BKCinsert_bat_force(bat *r, const bat *bid, const bat *sid, const bit *force); str BKCintersectcand(bat *ret, const bat *aid, const bat *bid); str BKCisPersistent(bit *res, const bat *bid); str BKCisSorted(bit *res, const bat *bid); diff --git a/gdk/ChangeLog b/gdk/ChangeLog --- a/gdk/ChangeLog +++ b/gdk/ChangeLog @@ -1,7 +1,17 @@ # ChangeLog file for MonetDB # This file is updated with Maddlog +* Mon Dec 14 2015 Sjoerd Mullender <[email protected]> +- Removed functions BATins, BATdel, BUNdel and BUNdelete. + * Fri Dec 11 2015 Sjoerd Mullender <[email protected]> +- Removed function VIEWcombine. Use BATdense instead. +- Removed "left" parameter from BUNinplace. It wasn't used since the + BAT it works on is dense headed. +- Created function BATdense to easily create a [void,void] BAT with + specified seqbases for head and tail and a count. +- Removed function BATmark. When all head columns are dense, BATmark + basically only created a new [void,void] BAT. - Renamed BATsubsort to BATsort. * Thu Dec 3 2015 Sjoerd Mullender <[email protected]> diff --git a/gdk/gdk.h b/gdk/gdk.h --- a/gdk/gdk.h +++ b/gdk/gdk.h @@ -1064,6 +1064,8 @@ gdk_export void HEAP_free(Heap *heap, va gdk_export BAT *BATnew(int hdtype, int tltype, BUN capacity, int role) __attribute__((warn_unused_result)); +gdk_export BAT *BATdense(oid hseq, oid tseq, BUN cnt) + __attribute__((warn_unused_result)); gdk_export gdk_return BATextend(BAT *b, BUN newcap); /* internal */ @@ -1073,20 +1075,12 @@ gdk_export bte ATOMelmshift(int sz); * @- BUN manipulation * @multitable @columnfractions 0.08 0.7 * @item BAT* - * @tab BATins (BAT *b, BAT *c, bit force) - * @item BAT* * @tab BATappend (BAT *b, BAT *c, bit force) * @item BAT* - * @tab BATdel (BAT *b, BAT *c, bit force) - * @item BAT* - * @tab BUNins (BAT *b, ptr left, ptr right, bit force) - * @item BAT* * @tab BUNappend (BAT *b, ptr right, bit force) * @item BAT* * @tab BUNreplace (BAT *b, ptr left, ptr right, bit force) * @item int - * @tab BUNdel (BAT *b, ptr left, ptr right, bit force) - * @item int * @tab BUNfnd (BAT *b, ptr tail) * @item BUN * @tab BUNlocate (BAT *b, ptr head, ptr tail) @@ -1109,9 +1103,8 @@ gdk_export bte ATOMelmshift(int sz); * be aware of the evolving nature of the sequence, which may require * copying the BAT first. * - * The update operations come in three flavors. Element-wise updates - * can use BUNins, BUNappend, BUNreplace, and BUNdel. The - * batch update operations are BATins, BATappend and BATdel. + * The update operations come in two flavors: BUNappend and + * BUNreplace. The batch version of BUNappend is BATappend. * * The routine BUNfnd provides fast access to a single BUN providing a * value for the tail of the binary association. @@ -1263,14 +1256,10 @@ gdk_export bte ATOMelmshift(int sz); gdk_export gdk_return GDKupgradevarheap(COLrec *c, var_t v, int copyall, int mayshare); 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); -gdk_export gdk_return BUNdel(BAT *b, const void *left, const void *right, bit force); -gdk_export BUN BUNdelete(BAT *b, BUN p, bit force); -gdk_export gdk_return BATdel(BAT *b, BAT *c, bit force); gdk_export gdk_return BUNreplace(BAT *b, const void *left, const void *right, bit force); -gdk_export gdk_return BUNinplace(BAT *b, BUN p, const void *left, const void *right, bit force); +gdk_export gdk_return BUNinplace(BAT *b, BUN p, const void *right, bit force); gdk_export gdk_return BATreplace(BAT *b, BAT *p, BAT *n, bit force); gdk_export BUN BUNfnd(BAT *b, const void *right); @@ -1463,10 +1452,6 @@ gdk_export int BATgetaccess(BAT *b); * @item BAT * * @tab COLcopy (BAT *b, int tt, int writeable, int role) * @item BAT * - * @tab BATmark (BAT *b, oid base) - * @item BAT * - * @tab BATmark_grp (BAT *b, BAT *g, oid *s) - * @item BAT * * @tab BATmirror (BAT *b) * @item BAT * * @end multitable @@ -1474,10 +1459,7 @@ gdk_export int BATgetaccess(BAT *b); * The routine BATclear removes the binary associations, leading to an * empty, but (re-)initialized BAT. Its properties are retained. A * temporary copy is obtained with Colcopy. The new BAT has an unique - * name. The routine BATmark creates a binary association that - * introduces a new tail column of fresh densely ascending OIDs. The - * base OID can be given explicitly, or if oid_nil is passed, is - * chosen as a new unique range by the system. + * name. * * The routine BATmirror returns the mirror image BAT (where tail is * head and head is tail) of that same BAT. This does not involve a @@ -1486,8 +1468,6 @@ gdk_export int BATgetaccess(BAT *b); */ gdk_export gdk_return BATclear(BAT *b, int force); gdk_export BAT *COLcopy(BAT *b, int tt, int writeable, int role); -gdk_export BAT *BATmark(BAT *b, oid base); -gdk_export BAT *BATmark_grp(BAT *b, BAT *g, const oid *base); gdk_export gdk_return BATgroup(BAT **groups, BAT **extents, BAT **histo, BAT *b, BAT *g, BAT *e, BAT *h); @@ -2703,7 +2683,7 @@ gdk_export BAT *BATprev(BAT *b); * @tab ALIGNsetH ((BAT *dst, BAT *src) * * @item BAT* - * @tab VIEWcreate (BAT *h, BAT *t) + * @tab VIEWcreate (oid seq, BAT *b) * @item int * @tab isVIEW (BAT *b) * @item bat @@ -2711,10 +2691,6 @@ gdk_export BAT *BATprev(BAT *b); * @item bat * @tab VIEWtparent (BAT *b) * @item BAT* - * @tab VIEWhead (BAT *b) - * @item BAT* - * @tab VIEWcombine (BAT *b) - * @item BAT* * @tab VIEWreset (BAT *b) * @item BAT* * @tab BATmaterialize (BAT *b) @@ -2732,17 +2708,13 @@ gdk_export BAT *BATprev(BAT *b); * VIEW BATs are BATs that lend their storage from a parent BAT. They * are just a descriptor that points to the data in this parent BAT. A * view is created with VIEWcreate. The cache id of the parent (if - * any) is returned by VIEWhparent and VIEWtparent (otherwise it - * returns 0). + * any) is returned by VIEWtparent (otherwise it returns 0). * * VIEW bats are read-only!! * - * The VIEWcombine gives a view on a BAT that has two head columns of - * the parent. The VIEWhead constructs a BAT view that has the same - * head column as the parent, but has a void column with seqbase=nil - * in the tail. VIEWreset creates a normal BAT with the same contents - * as its view parameter (it converts void columns with seqbase!=nil - * to materialized oid columns). + * VIEWreset creates a normal BAT with the same contents as its view + * parameter (it converts void columns with seqbase!=nil to + * materialized oid columns). * * The BATmaterialize materializes a VIEW (TODO) or void bat inplace. * This is useful as materialization is usually needed for updates. @@ -2757,9 +2729,8 @@ gdk_export void BATderiveHeadProps(BAT * #define BATPROPS_ALL 1 /* derive all possible properties; no matter what cost (key=hash) */ #define BATPROPS_CHECK 3 /* BATPROPS_ALL, but start from scratch and report illegally set properties */ -gdk_export BAT *VIEWcreate(BAT *h, BAT *t); -gdk_export BAT *VIEWcreate_(BAT *h, BAT *t, int stable); -gdk_export BAT *VIEWcombine(BAT *b); +gdk_export BAT *VIEWcreate(oid seq, BAT *b); +gdk_export BAT *VIEWcreate_(oid seq, BAT *b, int stable); gdk_export void VIEWbounds(BAT *b, BAT *view, BUN l, BUN h); /* low level functions */ @@ -2791,9 +2762,7 @@ gdk_export void ALIGNsetH(BAT *b1, BAT * } while (0) /* the parentid in a VIEW is correct for the normal view. We must - * correct for the reversed view. A special case are the VIEWcombine - * bats, these always refer to the same parent column (i.e. no - * correction needed) + * correct for the reversed view. */ #define isVIEW(x) \ ((x)->H->heap.parentid || \ @@ -2886,19 +2855,6 @@ gdk_export void ALIGNsetH(BAT *b1, BAT * for (q = BUNlast(r), p = BUNfirst(r);p < q; p++) /* - * @- batloop where the current element can be deleted/updated - * Normally it is strictly forbidden to update the BAT over which is - * being iterated, or delete the current element. This can only be - * done with the specialized batloop below. When doing a delete, do - * not forget to update the current pointer with a p = BUNdelete(b,p) - * (the delete may modify the current pointer p). After the - * delete/update has taken place, the pointer p is in an inconsistent - * state till the next iteration of the batloop starts. - */ -#define BATloopDEL(r, p, q) \ _______________________________________________ checkin-list mailing list [email protected] https://www.monetdb.org/mailman/listinfo/checkin-list
