Changeset: fd9db07674cf for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=fd9db07674cf Modified Files: clients/Tests/MAL-signatures_nocfitsio.stable.out clients/Tests/MAL-signatures_nogeom.stable.out clients/Tests/exports.stable.out Branch: default Log Message:
Fix changeset 0d96216a9bd3: reapprove changes that got lost. diffs (truncated from 1889 to 300 lines): diff --git a/clients/Tests/MAL-signatures_nocfitsio.stable.out b/clients/Tests/MAL-signatures_nocfitsio.stable.out --- a/clients/Tests/MAL-signatures_nocfitsio.stable.out +++ b/clients/Tests/MAL-signatures_nocfitsio.stable.out @@ -769,6 +769,23 @@ pattern aggr.prod(b:bat[:oid,:bte]):bte address CMDBATprod; comment Calculate aggregate product of B. +function aggr.quantile(b:bat[:oid,:any_1],q:bat[:oid,:dbl]):any_1; +command aggr.quantile(b:bat[:oid,:any_1],g:bat[:oid,:oid],e:bat[:oid,:any_2],q:bat[:oid,:dbl]):bat[:oid,:any_1] +address AGGRquantile3; +comment Grouped quantile aggregate + +command aggr.subquantile(b:bat[:oid,:any_1],q:bat[:oid,:dbl],g:bat[:oid,:oid],e:bat[:oid,:any_2],s:bat[:oid,:oid],skip_nils:bit):bat[:oid,:any_1] +address AGGRsubquantilecand; +comment Grouped median quantile with candidate list + +command aggr.subquantile(b:bat[:oid,:any_1],q:bat[:oid,:dbl],g:bat[:oid,:oid],e:bat[:oid,:any_2],skip_nils:bit):bat[:oid,:any_1] +address AGGRsubquantile; +comment Grouped quantile aggregate + +command aggr.subquantile(b:bat[:oid,:any_1],q:bat[:oid,:dbl],skip_nils:bit):bat[:oid,:any_1] +address AGGRquantile; +comment Quantile aggregate + command aggr.submedian(b:bat[:oid,:any_1],g:bat[:oid,:oid],e:bat[:oid,:any_2],s:bat[:oid,:oid],skip_nils:bit):bat[:oid,:any_1] address AGGRsubmediancand; comment Grouped median aggregate with candidate list @@ -2582,7 +2599,7 @@ command algebra.split(b:bat[:lng,:oid]): address ALGsplit; comment Split head into two values -command algebra.subthetajoin(l:bat[:oid,:any_1],r:bat[:oid,:any_1],sl:bat[:oid,:oid],sr:bat[:oid,:oid],op:str,nil_matches:bit,estimate:lng) (X_8:bat[:oid,:oid],X_9:bat[:oid,:oid]) +command algebra.subthetajoin(l:bat[:oid,:any_1],r:bat[:oid,:any_1],sl:bat[:oid,:oid],sr:bat[:oid,:oid],op:int,nil_matches:bit,estimate:lng) (X_8:bat[:oid,:oid],X_9:bat[:oid,:oid]) address ALGsubthetajoin; comment Theta join with candidate lists @@ -36844,6 +36861,10 @@ pattern calc.iszero(v:bte):bit address CMDvarISZERO; comment Unary check for zero of V +command calc.json(j:json):json +address JSONstr2json; +comment Convert JSON to JSON. Dealing with escape characters + command calc.json(j:str):json address JSONstr2json; comment Convert string to its JSON. Dealing with escape characters @@ -39215,10 +39236,6 @@ command geom.point(x:dbl,y:dbl):wkb address wkbcreatepoint; comment Construct a point from two geometries -pattern group.multicolumns(l:bat[:oid,:any]...) (ref:bat[:oid,:oid],grp:bat[:oid,:any],ext:bat[:oid,:any]) -address GRPmulticolumngroup; -comment Derive a group index over multiple columns. - command group.subgroupdone(b:bat[:oid,:any_1],g:bat[:oid,:oid],e:bat[:oid,:oid],h:bat[:oid,:wrd]) (groups:bat[:oid,:oid],extents:bat[:oid,:oid],histo:bat[:oid,:wrd]) address GRPsubgroup4; command group.subgroupdone(b:bat[:oid,:any_1],g:bat[:oid,:oid]) (groups:bat[:oid,:oid],extents:bat[:oid,:oid],histo:bat[:oid,:wrd]) @@ -39231,6 +39248,10 @@ command group.subgroup(b:bat[:oid,:any_1 address GRPsubgroup2; command group.subgroup(b:bat[:oid,:any_1]) (groups:bat[:oid,:oid],extents:bat[:oid,:oid],histo:bat[:oid,:wrd]) address GRPsubgroup1; +pattern group.subgroup(b:bat[:oid,:any]...) (ref:bat[:oid,:oid],grp:bat[:oid,:oid],hist:bat[:oid,:any]) +address GROUPmulticolumn; +comment Derivation of a group index over multiple columns. + command identifier.#fromstr():void address IDfromString; comment Convert a string to an identifier without any check diff --git a/clients/Tests/MAL-signatures_nogeom.stable.out b/clients/Tests/MAL-signatures_nogeom.stable.out --- a/clients/Tests/MAL-signatures_nogeom.stable.out +++ b/clients/Tests/MAL-signatures_nogeom.stable.out @@ -769,6 +769,23 @@ pattern aggr.prod(b:bat[:oid,:bte]):bte address CMDBATprod; comment Calculate aggregate product of B. +function aggr.quantile(b:bat[:oid,:any_1],q:bat[:oid,:dbl]):any_1; +command aggr.quantile(b:bat[:oid,:any_1],g:bat[:oid,:oid],e:bat[:oid,:any_2],q:bat[:oid,:dbl]):bat[:oid,:any_1] +address AGGRquantile3; +comment Grouped quantile aggregate + +command aggr.subquantile(b:bat[:oid,:any_1],q:bat[:oid,:dbl],g:bat[:oid,:oid],e:bat[:oid,:any_2],s:bat[:oid,:oid],skip_nils:bit):bat[:oid,:any_1] +address AGGRsubquantilecand; +comment Grouped median quantile with candidate list + +command aggr.subquantile(b:bat[:oid,:any_1],q:bat[:oid,:dbl],g:bat[:oid,:oid],e:bat[:oid,:any_2],skip_nils:bit):bat[:oid,:any_1] +address AGGRsubquantile; +comment Grouped quantile aggregate + +command aggr.subquantile(b:bat[:oid,:any_1],q:bat[:oid,:dbl],skip_nils:bit):bat[:oid,:any_1] +address AGGRquantile; +comment Quantile aggregate + command aggr.submedian(b:bat[:oid,:any_1],g:bat[:oid,:oid],e:bat[:oid,:any_2],s:bat[:oid,:oid],skip_nils:bit):bat[:oid,:any_1] address AGGRsubmediancand; comment Grouped median aggregate with candidate list @@ -2582,7 +2599,7 @@ command algebra.split(b:bat[:lng,:oid]): address ALGsplit; comment Split head into two values -command algebra.subthetajoin(l:bat[:oid,:any_1],r:bat[:oid,:any_1],sl:bat[:oid,:oid],sr:bat[:oid,:oid],op:str,nil_matches:bit,estimate:lng) (X_8:bat[:oid,:oid],X_9:bat[:oid,:oid]) +command algebra.subthetajoin(l:bat[:oid,:any_1],r:bat[:oid,:any_1],sl:bat[:oid,:oid],sr:bat[:oid,:oid],op:int,nil_matches:bit,estimate:lng) (X_8:bat[:oid,:oid],X_9:bat[:oid,:oid]) address ALGsubthetajoin; comment Theta join with candidate lists @@ -36833,6 +36850,10 @@ pattern calc.iszero(v:bte):bit address CMDvarISZERO; comment Unary check for zero of V +command calc.json(j:json):json +address JSONstr2json; +comment Convert JSON to JSON. Dealing with escape characters + command calc.json(j:str):json address JSONstr2json; comment Convert string to its JSON. Dealing with escape characters @@ -39069,10 +39090,6 @@ pattern fits.listdir(dirname:str):void address FITSdir; comment Attach all FITS files in the directory -pattern group.multicolumns(l:bat[:oid,:any]...) (ref:bat[:oid,:oid],grp:bat[:oid,:any],ext:bat[:oid,:any]) -address GRPmulticolumngroup; -comment Derive a group index over multiple columns. - command group.subgroupdone(b:bat[:oid,:any_1],g:bat[:oid,:oid],e:bat[:oid,:oid],h:bat[:oid,:wrd]) (groups:bat[:oid,:oid],extents:bat[:oid,:oid],histo:bat[:oid,:wrd]) address GRPsubgroup4; command group.subgroupdone(b:bat[:oid,:any_1],g:bat[:oid,:oid]) (groups:bat[:oid,:oid],extents:bat[:oid,:oid],histo:bat[:oid,:wrd]) @@ -39085,6 +39102,10 @@ command group.subgroup(b:bat[:oid,:any_1 address GRPsubgroup2; command group.subgroup(b:bat[:oid,:any_1]) (groups:bat[:oid,:oid],extents:bat[:oid,:oid],histo:bat[:oid,:wrd]) address GRPsubgroup1; +pattern group.subgroup(b:bat[:oid,:any]...) (ref:bat[:oid,:oid],grp:bat[:oid,:oid],hist:bat[:oid,:any]) +address GROUPmulticolumn; +comment Derivation of a group index over multiple columns. + command identifier.#fromstr():void address IDfromString; comment Convert a string to an identifier without any check 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 @@ -8,16 +8,16 @@ stdout of test 'exports` in directory 'c # gdk int ALIGNsetH(BAT *b1, BAT *b2); int ALIGNsynced(BAT *b1, BAT *b2); +int ATOMallocate(const char *nme); int ATOMcmp(int id, const void *v_1, const void *v_2); ptr ATOMdup(int id, const void *val); bte ATOMelmshift(int sz); int ATOMformat(int id, const void *val, char **buf); -int ATOMindex(char *nme); +int ATOMindex(const char *nme); int ATOMlen(int id, const void *v); str ATOMname(int id); ptr ATOMnil(int id); int ATOMprint(int id, const void *val, stream *fd); -void ATOMproperty(char *nme, char *property, GDKfcn fcn, int val); BAT *BATalpha(BAT *b); BAT *BATantijoin(BAT *l, BAT *r); BAT *BATantiuselect_(BAT *b, const void *tl, const void *th, bit li, bit hi); @@ -25,7 +25,7 @@ BAT *BATappend(BAT *b, BAT *c, bit force void BATassertProps(BAT *b); atomDesc BATatoms[]; BAT *BATattach(int tt, const char *heapfile); -BAT *BATbandjoin(BAT *l, BAT *r, ptr mnus, ptr plus, bit li, bit hi); +BAT *BATbandjoin(BAT *l, BAT *r, const void *mnus, const void *plus, bit li, bit hi); BAT *BATcalcabsolute(BAT *b, BAT *s); BAT *BATcalcadd(BAT *b1, BAT *b2, BAT *s, int tp, int abort_on_error); BAT *BATcalcaddcst(BAT *b, const ValRecord *v, BAT *s, int tp, int abort_on_error); @@ -107,6 +107,7 @@ BAT *BATcopy(BAT *b, int ht, int tt, int BUN BATcount(BAT *b); BUN BATcount_no_nil(BAT *b); BAT *BATcross(BAT *l, BAT *r); +gdk_return BATcross1(BAT **r1p, BAT **r2p, BAT *l, BAT *r); BAT *BATdel(BAT *b, BAT *c, bit force); BAT *BATdelHead(BAT *b, BAT *c, bit force); int BATdelete(BAT *b); @@ -115,18 +116,17 @@ void BATderiveHeadProps(BAT *b, int expe void BATderiveProps(BAT *b, int expensive); BAT *BATextend(BAT *b, BUN newcap); BAT *BATfakeCommit(BAT *b); -BAT *BATfetch(BAT *b, BAT *s); -BAT *BATfetchjoin(BAT *b, BAT *s, BUN estimate); int BATgetaccess(BAT *b); PROPrec *BATgetprop(BAT *b, int idx); gdk_return BATgroup(BAT **groups, BAT **extents, BAT **histo, BAT *b, BAT *g, BAT *e, BAT *h); const char *BATgroupaggrinit(const BAT *b, const BAT *g, const BAT *e, const BAT *s, oid *minp, oid *maxp, BUN *ngrpp, BUN *startp, BUN *endp, BUN *cntp, const oid **candp, const oid **candendp); -BAT *BATgroupavg(BAT *b, BAT *g, BAT *e, BAT *s, int tp, int skip_nils, int abort_on_error); +gdk_return BATgroupavg(BAT **bnp, BAT **cntsp, BAT *b, BAT *g, BAT *e, BAT *s, int tp, int skip_nils, int abort_on_error); BAT *BATgroupcount(BAT *b, BAT *g, BAT *e, BAT *s, int tp, int skip_nils, int abort_on_error); BAT *BATgroupmax(BAT *b, BAT *g, BAT *e, BAT *s, int tp, int skip_nils, int abort_on_error); BAT *BATgroupmedian(BAT *b, BAT *g, BAT *e, BAT *s, int tp, int skip_nils, int abort_on_error); BAT *BATgroupmin(BAT *b, BAT *g, BAT *e, BAT *s, int tp, int skip_nils, int abort_on_error); BAT *BATgroupprod(BAT *b, BAT *g, BAT *e, BAT *s, int tp, int skip_nils, int abort_on_error); +BAT *BATgroupquantile(BAT *b, BAT *g, BAT *e, BAT *s, int tp, double quantile, int skip_nils, int abort_on_error); BAT *BATgroupsize(BAT *b, BAT *g, BAT *e, BAT *s, int tp, int skip_nils, int abort_on_error); BAT *BATgroupstdev_population(BAT *b, BAT *g, BAT *e, BAT *s, int tp, int skip_nils, int abort_on_error); BAT *BATgroupstdev_sample(BAT *b, BAT *g, BAT *e, BAT *s, int tp, int skip_nils, int abort_on_error); @@ -135,8 +135,8 @@ BAT *BATgroupvariance_population(BAT *b, BAT *BATgroupvariance_sample(BAT *b, BAT *g, BAT *e, BAT *s, int tp, int skip_nils, int abort_on_error); BUN BATgrows(BAT *b); BAT *BAThash(BAT *b, BUN masksize); -BAT *BAThashjoin(BAT *l, BAT *r, BUN estimate); BAT *BAThistogram(BAT *b); +BAT *BATimprints(BAT *b); BAT *BATins(BAT *b, BAT *c, bit force); BAT *BATintersectcand(BAT *a, BAT *b); BAT *BATjoin(BAT *l, BAT *r, BUN estimate); @@ -152,12 +152,13 @@ BAT *BATmark(BAT *b, oid base); BAT *BATmark_grp(BAT *b, BAT *g, oid *base); BAT *BATmaterialize(BAT *b); BAT *BATmaterializeh(BAT *b); +void *BATmax(BAT *b, void *aggr); size_t BATmemsize(BAT *b, int dirty); BAT *BATmergecand(BAT *a, BAT *b); -BAT *BATmergejoin(BAT *l, BAT *r, BUN estimate); +void *BATmin(BAT *b, void *aggr); int BATmmap(BAT *b, int hb, int tb, int hh, int th, int force); BAT *BATmode(BAT *b, int onoff); -int BATmultiprintf(stream *f, int argc, BAT *argv[], int printoid, int order, int printorderby); +gdk_return BATmultiprintf(stream *f, int argc, BAT *argv[], int printoid, int order, int printorderby); int BATname(BAT *b, const char *nme); BAT *BATnew(int hdtype, int tltype, BUN capacity); BAT *BATorder(BAT *b); @@ -166,15 +167,18 @@ int BATordered(BAT *b); int BATordered_rev(BAT *b); BAT *BATouterjoin(BAT *l, BAT *r, BUN estimate); BAT *BATprev(BAT *b); -int BATprint(BAT *b); -int BATprintf(stream *f, BAT *b); +gdk_return BATprint(BAT *b); +gdk_return BATprintcols(stream *s, int argc, BAT *argv[]); +gdk_return BATprintf(stream *f, BAT *b); gdk_return BATprod(void *res, int tp, BAT *b, BAT *s, int skip_nils, int abort_on_error, int nil_if_empty); +BAT *BATproject(BAT *l, BAT *r); BAT *BATrangejoin(BAT *l, BAT *rl, BAT *rh, bit li, bit hi); BAT *BATreplace(BAT *b, BAT *n, bit force); BAT *BATrestrict(BAT *b, const void *hl, const void *hh, const void *tl, const void *th); BAT *BATrevert(BAT *b); BAT *BATroles(BAT *b, const char *hnme, const char *tnme); BAT *BATsample(BAT *b, BUN n); +BAT *BATsample_(BAT *b, BUN n); BAT *BATsave(BAT *b); BAT *BATsdiff(BAT *b, BAT *c); BAT *BATselect(BAT *b, const void *tl, const void *th); @@ -192,8 +196,16 @@ BAT *BATsort(BAT *b); BAT *BATsort_rev(BAT *b); BAT *BATssort(BAT *b); BAT *BATssort_rev(BAT *b); +gdk_return BATsubbandjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, const void *c1, const void *c2, int li, int hi, BUN estimate); +gdk_return BATsubcross(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr); +gdk_return BATsubjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, int nil_matches, BUN estimate); +gdk_return BATsubleftfetchjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, int nil_matches, BUN estimate); +gdk_return BATsubleftjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, int nil_matches, BUN estimate); +gdk_return BATsubouterjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, int nil_matches, BUN estimate); BAT *BATsubselect(BAT *b, BAT *s, const void *tl, const void *th, int li, int hi, int anti); +gdk_return BATsubsemijoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, int nil_matches, BUN estimate); gdk_return BATsubsort(BAT **sorted, BAT **order, BAT **groups, BAT *b, BAT *o, BAT *g, int reverse, int stable); +gdk_return BATsubthetajoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, int op, int nil_matches, BUN estimate); gdk_return BATsum(void *res, int tp, BAT *b, BAT *s, int skip_nils, int abort_on_error, int nil_if_empty); BAT *BATsunion(BAT *b, BAT *c); BAT *BATsunique(BAT *b); @@ -260,9 +272,14 @@ int GDKgetenv_istrue(const char *name); int GDKgetenv_isyes(const char *name); int GDKinit(opt *set, int setlen); BAT *GDKkey; +ATOMIC_TYPE volatile GDKlockcnt; +ATOMIC_TYPE volatile GDKlockcontentioncnt; +MT_Lock *volatile GDKlocklist; +ATOMIC_FLAG volatile GDKlocklistlock; +ATOMIC_TYPE volatile GDKlocksleepcnt; +void GDKlockstatistics(int); void *GDKmalloc(size_t size); size_t GDKmem_cursize(void); -size_t GDKmem_inuse(void); void *GDKmmap(const char *path, int mode, size_t len); int GDKms(void); int GDKnr_threads; @@ -283,7 +300,6 @@ void *GDKzalloc(size_t size); void HASHdestroy(BAT *b); BUN HASHlist(Hash *h, BUN i); BUN HASHprobe(Hash *h, const void *v); -void HASHremove(BAT *b); void HEAP_free(Heap *heap, var_t block); void HEAP_initialize(Heap *heap, size_t nbytes, size_t nprivate, int alignment); var_t HEAP_malloc(Heap *heap, size_t nbytes); @@ -292,16 +308,17 @@ int HEAPextend(Heap *h, size_t size); int HEAPfree(Heap *h); size_t HEAPmemsize(Heap *h); size_t HEAPvmsize(Heap *h); +void IMPSdestroy(BAT *b); void MRschedule(int taskcnt, void **arg, void( *cmd)(void *p)); int MT_check_nr_cores(void); unsigned long long MT_clock(void); int MT_create_thread(MT_Id *t, void( *function)(void *), void *arg, enum MT_thr_detach d); void MT_exit_thread(int status) __attribute__((__noreturn__)); +void MT_exiting_thread(void); MT_Id MT_getpid(void); size_t MT_getrss(void); void MT_global_exit(int status) __attribute__((__noreturn__)); _______________________________________________ checkin-list mailing list [email protected] https://www.monetdb.org/mailman/listinfo/checkin-list
