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

Reply via email to