Changeset: 10f0429c9a35 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=10f0429c9a35 Added Files: monetdb5/modules/mal/Tests/pqueue3.mal Modified Files: monetdb5/modules/mal/Tests/All monetdb5/modules/mal/pqueue.c Branch: default Log Message:
Added pqueue string test diffs (144 lines): diff --git a/monetdb5/modules/mal/Tests/All b/monetdb5/modules/mal/Tests/All --- a/monetdb5/modules/mal/Tests/All +++ b/monetdb5/modules/mal/Tests/All @@ -82,3 +82,4 @@ clients-getpasswd pqueue pqueue2 +pqueue3 diff --git a/monetdb5/modules/mal/Tests/pqueue3.mal b/monetdb5/modules/mal/Tests/pqueue3.mal new file mode 100644 --- /dev/null +++ b/monetdb5/modules/mal/Tests/pqueue3.mal @@ -0,0 +1,116 @@ +# enqueue something +b:= bat.new(:oid,:int); + +bat.append(b,1); +bat.append(b,0); +bat.append(b,2); +bat.append(b,2); +bat.append(b,5); +bat.append(b,5); +bat.append(b,3); + +io.print(b); + +a:= bat.new(:oid,:str); + +bat.append(a,"sjoerd"); +bat.append(a,"peter"); +bat.append(a,"stefan"); +bat.append(a,"stefan"); +bat.append(a,"niels"); +bat.append(a,"martin"); +bat.append(a,"stefan"); + +io.print(a); + +# topn of b, new interface should return void,oid(position) +bp:= pqueue.topn_min(b,0:wrd); +io.print(bp); +bp:= pqueue.topn_min(b,1:wrd); +io.print(bp); +bp:= pqueue.topn_min(b,2:wrd); +io.print(bp); +bp:= pqueue.topn_min(b,3:wrd); +io.print(bp); +bp:= pqueue.topn_min(b,4:wrd); +io.print(bp); +bp:= pqueue.topn_min(b,5:wrd); +io.print(bp); +bp:= pqueue.topn_min(b,6:wrd); +io.print(bp); +bp:= pqueue.topn_min(b,7:wrd); +io.print(bp); +bp:= pqueue.topn_min(b,8:wrd); +io.print(bp); + +# utopn only count the unique values - topn of b, +# duplicates are included in the returned position list and +# get the same group id. +# +# returns both void,pos, void,gid +io.print("Start of compound"); +(bp,bg):= pqueue.topn_min(b,0:wrd); +io.print(bp); +io.print(bg); +# (sub) topn input: aligned bg group id, ap values bat +# output: void,pos +# returns the topn of the combination gid,value +(cp,cg):= pqueue.topn_min(a,bp,bg,0:wrd); +io.print(cp); + +(bp,bg):= pqueue.topn_min(b,1:wrd); +io.print(bp); +io.print(bg); +(cp,cg):= pqueue.topn_min(a,bp,bg,1:wrd); +io.print(cp); +io.print(cg); + +(bp,bg):= pqueue.topn_min(b,2:wrd); +io.print(bp); +io.print(bg); +(cp,cg):= pqueue.topn_min(a,bp,bg,2:wrd); +io.print(cp); +io.print(cg); + +(bp,bg):= pqueue.topn_min(b,3:wrd); +io.print(bp); +io.print(bg); +(cp,cg):= pqueue.topn_min(a,bp,bg,3:wrd); +io.print(cp); +io.print(cg); + +(bp,bg):= pqueue.topn_min(b,4:wrd); +io.print(bp); +io.print(bg); +(cp,cg):= pqueue.topn_min(a,bp,bg,4:wrd); +io.print(cp); +io.print(cg); + +(bp,bg):= pqueue.topn_min(b,5:wrd); +io.print(bp); +io.print(bg); +(cp,cg):= pqueue.topn_min(a,bp,bg,5:wrd); +io.print(cp); +io.print(cg); + +(bp,bg):= pqueue.topn_min(b,6:wrd); +io.print(bp); +io.print(bg); +(cp,cg):= pqueue.topn_min(a,bp,bg,6:wrd); +io.print(cp); +io.print(cg); + +(bp,bg):= pqueue.topn_min(b,7:wrd); +io.print(bp); +io.print(bg); +(cp,cg):= pqueue.topn_min(a,bp,bg,7:wrd); +io.print(cp); +io.print(cg); + +(bp,bg):= pqueue.topn_min(b,8:wrd); +io.print(bp); +io.print(bg); +(cp,cg):= pqueue.topn_min(a,bp,bg,8:wrd); +io.print(cp); +io.print(cg); + diff --git a/monetdb5/modules/mal/pqueue.c b/monetdb5/modules/mal/pqueue.c --- a/monetdb5/modules/mal/pqueue.c +++ b/monetdb5/modules/mal/pqueue.c @@ -335,10 +335,9 @@ str PQtopn3_minmax(Client cntxt, MalBlkP BAT *bp,*bg, *a, *cp, *cg; BUN i, size, top = 0, uniq, gid; oid *bpx, *bgx, *cpx, *cgx, lim, o, tmp; - int k,max = 0; + int k =0,max = 0; (void) cntxt; - (void) k; retcp = (int*) getArgReference(stk, pci, 0); retcg = (int*) getArgReference(stk, pci, 1); tpe = ATOMstorage(getColumnType(getArgType(mb, pci, 2))); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list