Changeset: eb09b468ba13 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=eb09b468ba13
Modified Files:
        monetdb5/modules/mal/Tests/array04.mal
        monetdb5/modules/mal/array.mx
Branch: sciql
Log Message:

changed the parameter order of the SciQL AGGR function impl.
to make it easier for the SQL relational code


diffs (88 lines):

diff --git a/monetdb5/modules/mal/Tests/array04.mal 
b/monetdb5/modules/mal/Tests/array04.mal
--- a/monetdb5/modules/mal/Tests/array04.mal
+++ b/monetdb5/modules/mal/Tests/array04.mal
@@ -32,8 +32,8 @@ t0:= array.series(-1,1,2,3,1);
 t1:= array.series(-2,1,1,1,3);
 io.print(t0,t1);
 
-gs:= array.sum(mv, mx, my, t0, t1, 4, 4);
-ga:= array.avg(mv, mx, my, t0, t1, 4, 4);
+gs:= array.sum(mv, mx, t0, 4, my, t1, 4);
+ga:= array.avg(mv, mx, t0, 4, my, t1, 4);
 io.print(mx, my, mv, gs, ga);
 
 #create array M(x int dimension[0:1:4], y int dimension[0:1:4], v int default 
x*4+y);
@@ -54,8 +54,8 @@ mv := bat.append(mv,12);
 mv := bat.append(mv,13);
 mv := bat.append(mv,14);
 mv := bat.append(mv,15);
-gs:= array.sum(mv, mx, my, t0, t1, 4, 4);
-ga:= array.avg(mv, mx, my, t0, t1, 4, 4);
+gs:= array.sum(mv, mx, t0, 4, my, t1, 4);
+ga:= array.avg(mv, mx, t0, 4, my, t1, 4);
 io.print(mx, my, mv, gs, ga);
 
 #template:= array.map(mx,my,t0,t1);
diff --git a/monetdb5/modules/mal/array.mx b/monetdb5/modules/mal/array.mx
--- a/monetdb5/modules/mal/array.mx
+++ b/monetdb5/modules/mal/array.mx
@@ -686,9 +686,9 @@ ARRAYtiles(Client cntxt, MalBlkPtr mb, M
 }
 /* 
  * array.sum inputs:
- *  (cell_val BAT,
- *  dim_1...dim_n BAT, tile_member_offset_dim_1...tile_member_offset_dim_n BAT,
- *  size_dim_1...size_dim_n)
+ *  (cell_val:BAT,
+ *   dim_1:BAT,tile_member_offset_dim_1:BAT,size_dim_1, ...,
+ *   dim_n:BAT,tile_member_offset_dim_n:BAT,size_dim_n)
  */
 str
 ARRAYtilesSum_@1(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
@@ -723,13 +723,13 @@ ARRAYtilesSum_@1(Client cntxt, MalBlkPtr
                throw(MAL, "array.sum", RUNTIME_OBJECT_MISSING);
        }
        for (i = 0; i < ndims; i++) {
-               bDims[i] = BATdescriptor(*(int*)getArgReference(stk,pci,i+2));
-               bOffsets[i] = 
BATdescriptor(*(int*)getArgReference(stk,pci,i+2+ndims));
+               bDims[i] = BATdescriptor(*(int*)getArgReference(stk,pci,2+i*3));
+               bOffsets[i] = 
BATdescriptor(*(int*)getArgReference(stk,pci,2+i*3+1));
                if (!bDims[i] || !bOffsets[i]) {
                        AGGR_CLEANUP();
                        throw(MAL, "array.sum", RUNTIME_OBJECT_MISSING);
                }
-               dSize[i] = *(int*)getArgReference(stk,pci,i+2+ndims*2);
+               dSize[i] = *(int*)getArgReference(stk,pci,2+i*3+2);
        }
        /* type check the shapes, prepare iterators, and compute the min/max of 
the dimensions */
        bValI = bat_iterator(bVal);
@@ -809,9 +809,9 @@ ARRAYtilesSum_@1(Client cntxt, MalBlkPtr
 
 /* 
  * array.avg inputs:
- *  (cell_val BAT,
- *  dim_1...dim_n BAT, tile_member_offset_dim_1...tile_member_offset_dim_n BAT,
- *  size_dim_1...size_dim_n)
+ *  (cell_val:BAT,
+ *   dim_1:BAT,tile_member_offset_dim_1:BAT,size_dim_1, ...,
+ *   dim_n:BAT,tile_member_offset_dim_n:BAT,size_dim_n)
  */
 str
 ARRAYtilesAvg_@1(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
@@ -847,13 +847,13 @@ ARRAYtilesAvg_@1(Client cntxt, MalBlkPtr
                throw(MAL, "array.avg", RUNTIME_OBJECT_MISSING);
        }
        for (i = 0; i < ndims; i++) {
-               bDims[i] = BATdescriptor(*(int*)getArgReference(stk,pci,i+2));
-               bOffsets[i] = 
BATdescriptor(*(int*)getArgReference(stk,pci,i+2+ndims));
+               bDims[i] = BATdescriptor(*(int*)getArgReference(stk,pci,2+i*3));
+               bOffsets[i] = 
BATdescriptor(*(int*)getArgReference(stk,pci,2+i*3+1));
                if (!bDims[i] || !bOffsets[i]) {
                        AGGR_CLEANUP();
                        throw(MAL, "array.avg", RUNTIME_OBJECT_MISSING);
                }
-               dSize[i] = *(int*)getArgReference(stk,pci,i+2+ndims*2);
+               dSize[i] = *(int*)getArgReference(stk,pci,2+i*3+2);
        }
        /* type check the shapes, prepare iterators, and compute the min/max of 
the dimensions */
        bValI = bat_iterator(bVal);
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to