Changeset: 81020218708c for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=81020218708c
Modified Files:
clients/Tests/exports.stable.out
monetdb5/modules/mal/array.mx
sql/scripts/29_array.sql
Branch: SciQL-2
Log Message:
enabled tiled array aggregation also for TINYINT & SMALLINT dimensions
CAVEAT(s):
- all dimensions must have the same type, i.e.,
all TINYINT, all SMALLINT, or all INT(EGER)
- tiled array aggregation remains available only for
1-, 2-, or 3-dimensional arrays
diffs (truncated from 630 to 300 lines):
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
@@ -867,36 +867,96 @@ str ARRAYseries_int(int *ret, int *start
str ARRAYseries_lng(int *ret, lng *start, lng *step, lng *stop, int *grp, int
*series);
str ARRAYseries_sht(int *ret, sht *start, sht *step, sht *stop, int *grp, int
*series);
str ARRAYslice(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
-str ARRAYtiles_avg_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_avg_dbl(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_avg_flt(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_avg_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_avg_lng(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_avg_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_cnt_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_cnt_dbl(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_cnt_flt(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_cnt_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_cnt_lng(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_cnt_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_max_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_max_dbl(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_max_flt(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_max_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_max_lng(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_max_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_min_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_min_dbl(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_min_flt(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_min_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_min_lng(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_min_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_sum_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_sum_dbl(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_sum_flt(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_sum_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_sum_lng(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
-str ARRAYtiles_sum_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_avg_bte_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_avg_bte_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_avg_bte_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_avg_dbl_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_avg_dbl_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_avg_dbl_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_avg_flt_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_avg_flt_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_avg_flt_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_avg_int_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_avg_int_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_avg_int_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_avg_lng_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_avg_lng_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_avg_lng_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_avg_sht_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_avg_sht_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_avg_sht_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_cnt_bte_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_cnt_bte_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_cnt_bte_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_cnt_dbl_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_cnt_dbl_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_cnt_dbl_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_cnt_flt_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_cnt_flt_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_cnt_flt_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_cnt_int_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_cnt_int_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_cnt_int_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_cnt_lng_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_cnt_lng_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_cnt_lng_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_cnt_sht_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_cnt_sht_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_cnt_sht_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_max_bte_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_max_bte_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_max_bte_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_max_dbl_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_max_dbl_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_max_dbl_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_max_flt_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_max_flt_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_max_flt_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_max_int_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_max_int_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_max_int_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_max_lng_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_max_lng_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_max_lng_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_max_sht_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_max_sht_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_max_sht_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_min_bte_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_min_bte_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_min_bte_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_min_dbl_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_min_dbl_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_min_dbl_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_min_flt_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_min_flt_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_min_flt_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_min_int_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_min_int_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_min_int_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_min_lng_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_min_lng_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_min_lng_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_min_sht_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_min_sht_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_min_sht_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_sum_bte_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_sum_bte_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_sum_bte_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_sum_dbl_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_sum_dbl_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_sum_dbl_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_sum_flt_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_sum_flt_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_sum_flt_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_sum_int_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_sum_int_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_sum_int_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_sum_lng_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_sum_lng_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_sum_lng_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_sum_sht_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_sum_sht_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
+str ARRAYtiles_sum_sht_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
str AUTHaddUser(oid *ret, Client *c, str *user, str *pass);
str AUTHchangePassword(Client *c, str *oldpass, str *passwd);
str AUTHchangeUsername(Client *c, str *olduser, str *newuser);
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
@@ -81,64 +81,69 @@ comment "Compute the OIDs of all cells s
@= tilesAggrDecl
module array;
-pattern sum(val:@1, any...):lng
-address ARRAYtiles_sum_@1
+pattern sum(val:@1, dim1:@2, any...):lng
+address ARRAYtiles_sum_@1_@2
comment "Construct the sum over all tiles";
-pattern sum(val:@1, any...):dbl
-address ARRAYtiles_sum_@1
+pattern sum(val:@1, dim1:@2, any...):dbl
+address ARRAYtiles_sum_@1_@2
comment "Construct the sum over all tiles";
-pattern avg(val:@1, any...):dbl
-address ARRAYtiles_avg_@1
+pattern avg(val:@1, dim1:@2, any...):dbl
+address ARRAYtiles_avg_@1_@2
comment "Construct the average over all tiles";
-pattern min(val:@1, any...):@1
-address ARRAYtiles_min_@1
+pattern min(val:@1, dim1:@2, any...):@1
+address ARRAYtiles_min_@1_@2
comment "Construct the minimum over all tiles";
-pattern max(val:@1, any...):@1
-address ARRAYtiles_max_@1
+pattern max(val:@1, dim1:@2, any...):@1
+address ARRAYtiles_max_@1_@2
comment "Construct the maximum over all tiles";
-pattern cnt(val:@1, any...):lng
-address ARRAYtiles_cnt_@1
+pattern cnt(val:@1, dim1:@2, any...):lng
+address ARRAYtiles_cnt_@1_@2
comment "Construct the count over all tiles";
module batarray;
# The BAT version of the AGGR functions over array tiles
-pattern sum(val:bat[:oid,:@1], any...):bat[:oid,:lng]
-address ARRAYtiles_sum_@1
+pattern sum(val:bat[:oid,:@1], dim1:bat[:oid,:@2], any...):bat[:oid,:lng]
+address ARRAYtiles_sum_@1_@2
comment "Construct the sum over all tiles";
-pattern sum(val:bat[:oid,:@1], any...):bat[:oid,:dbl]
-address ARRAYtiles_sum_@1
+pattern sum(val:bat[:oid,:@1], dim1:bat[:oid,:@2], any...):bat[:oid,:dbl]
+address ARRAYtiles_sum_@1_@2
comment "Construct the sum over all tiles";
-pattern avg(val:bat[:oid,:@1], any...):bat[:oid,:dbl]
-address ARRAYtiles_avg_@1
+pattern avg(val:bat[:oid,:@1], dim1:bat[:oid,:@2], any...):bat[:oid,:dbl]
+address ARRAYtiles_avg_@1_@2
comment "Construct the average over all tiles";
-pattern min(val:bat[:oid,:@1], any...):bat[:oid,:@1]
-address ARRAYtiles_min_@1
+pattern min(val:bat[:oid,:@1], dim1:bat[:oid,:@2], any...):bat[:oid,:@1]
+address ARRAYtiles_min_@1_@2
comment "Construct the minimum over all tiles";
-pattern max(val:bat[:oid,:@1], any...):bat[:oid,:@1]
-address ARRAYtiles_max_@1
+pattern max(val:bat[:oid,:@1], dim1:bat[:oid,:@2], any...):bat[:oid,:@1]
+address ARRAYtiles_max_@1_@2
comment "Construct the maximum over all tiles";
-pattern cnt(val:bat[:oid,:@1], any...):bat[:oid,:lng]
-address ARRAYtiles_cnt_@1
+pattern cnt(val:bat[:oid,:@1], dim1:bat[:oid,:@2], any...):bat[:oid,:lng]
+address ARRAYtiles_cnt_@1_@2
comment "Construct the count over all tiles";
@
+@= tilesAggrDeclDimType
+@:tilesAggrDecl(bte,@1)@
+@:tilesAggrDecl(sht,@1)@
+@:tilesAggrDecl(int,@1)@
+@:tilesAggrDecl(lng,@1)@
+@:tilesAggrDecl(flt,@1)@
+@:tilesAggrDecl(dbl,@1)@
+@
@mal
-@:tilesAggrDecl(bte)@
-@:tilesAggrDecl(sht)@
-@:tilesAggrDecl(int)@
-@:tilesAggrDecl(lng)@
-@:tilesAggrDecl(flt)@
-@:tilesAggrDecl(dbl)@
+@:tilesAggrDeclDimType(bte)@
+@:tilesAggrDeclDimType(sht)@
+@:tilesAggrDeclDimType(int)@
@- Implementation
@h
@@ -168,13 +173,19 @@ array_export str ARRAYfiller(Client cntx
array_export str ARRAYslice(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr p);
+@= array_defs_DimType
+array_export str ARRAYtiles_sum_@1_@2(Client cntxt, MalBlkPtr mb, MalStkPtr
stk, InstrPtr pci);
+array_export str ARRAYtiles_avg_@1_@2(Client cntxt, MalBlkPtr mb, MalStkPtr
stk, InstrPtr pci);
+array_export str ARRAYtiles_min_@1_@2(Client cntxt, MalBlkPtr mb, MalStkPtr
stk, InstrPtr pci);
+array_export str ARRAYtiles_max_@1_@2(Client cntxt, MalBlkPtr mb, MalStkPtr
stk, InstrPtr pci);
+array_export str ARRAYtiles_cnt_@1_@2(Client cntxt, MalBlkPtr mb, MalStkPtr
stk, InstrPtr pci);
+@
@= array_defs
array_export str ARRAYseries_@1(int *ret, @1 *start, @1 *step, @1 *stop, int
*grp, int *series);
-array_export str ARRAYtiles_sum_@1(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr pci);
-array_export str ARRAYtiles_avg_@1(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr pci);
-array_export str ARRAYtiles_min_@1(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr pci);
-array_export str ARRAYtiles_max_@1(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr pci);
-array_export str ARRAYtiles_cnt_@1(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr pci);
+@:array_defs_DimType(@1,bte)@
+@:array_defs_DimType(@1,sht)@
+@:array_defs_DimType(@1,int)@
+@
@h
@:array_defs(bte)@
@:array_defs(sht)@
@@ -547,18 +558,17 @@ ARRAYfiller(Client cntxt, MalBlkPtr mb,
* dim_n:BAT,tile_member_offset_dim_n:BAT,size_dim_n)
*/
str
-ARRAYtiles_@4_@1(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
+ARRAYtiles_@4_@1_@8(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
{
BAT *bVal = NULL, *bRes = NULL, **bDims = NULL, **bOffsets = NULL;
int *ret = (int*) getArgReference(stk,pci,0), i = 0, ndims = 0;
bit skip = FALSE, nils = FALSE;
@1 *bValT = NULL, elm = 0;
@3 *bResT = NULL;
- int **bDimsT = NULL, **bOffsetsT = NULL;
+ @8 **bDimsT = NULL, **bOffsetsT = NULL, *dMin = NULL, *dMax = NULL;
BUN p, r, arrcnt = 0, offcnt = 0, cnt = 0;
@2 @5;
- /* FIXME: this code only deal with INT dimensions */
- int cidx = 0, *dMin = NULL, *dMax = NULL, *dSize = NULL;
+ int cidx = 0, *dSize = NULL;
oid arrbase = 0, offbase = 0, vid = 0, mul = 0;
(void) cntxt;
@@ -569,11 +579,11 @@ ARRAYtiles_@4_@1(Client cntxt, MalBlkPtr
ndims = (pci->argc - pci->retc - 1) / 3;
bDims = (BAT**) GDKzalloc(sizeof(BAT*) * ndims);
- bDimsT = (int**) GDKzalloc(sizeof(int*) * ndims);
+ bDimsT = (@8**) GDKzalloc(sizeof(@8*) * ndims);
bOffsets = (BAT**) GDKzalloc(sizeof(BAT*) * ndims);
- bOffsetsT = (int**) GDKzalloc(sizeof(int*) * ndims);
- dMin = (int*) GDKzalloc(sizeof(int) * ndims);
- dMax = (int*) GDKzalloc(sizeof(int) * ndims);
+ bOffsetsT = (@8**) GDKzalloc(sizeof(@8*) * ndims);
+ dMin = (@8*) GDKzalloc(sizeof(@8) * ndims);
+ dMax = (@8*) GDKzalloc(sizeof(@8) * ndims);
dSize = (int*) GDKzalloc(sizeof(int) * ndims);
if (!bDims || !bDimsT || !bOffsets || !bOffsetsT || !dMin || !dMax ||
!dSize) {
AGGR_CLEANUP();
@@ -622,7 +632,7 @@ ARRAYtiles_@4_@1(Client cntxt, MalBlkPtr
AGGR_CLEANUP();
throw(MAL, "array.@4", "heads of all offset BATs must
be aligned");
}
_______________________________________________
checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list