Changeset: 9b6c930b20dc for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9b6c930b20dc
Modified Files:
        clients/Tests/exports.stable.out
        monetdb5/modules/mal/array.mx
        sql/scripts/29_array.sql
        sql/test/BugTracker-2012/Tests/predicate_select.Bug-3090.stable.out
        sql/test/Tests/systemfunctions.stable.out
        sql/test/leaks/Tests/check1.stable.out
        sql/test/leaks/Tests/check2.stable.out
        sql/test/leaks/Tests/check3.stable.out
        sql/test/leaks/Tests/check4.stable.out
        sql/test/leaks/Tests/check5.stable.out
        sql/test/mapi/Tests/php_monetdb.stable.out
Branch: SciQL-2
Log Message:

added array_offsets(...) (SQL), array.offsets(...) (MAL) & ARRAYoffsets_*(...) 
C functions

in an attempt to implement tiled array aggragation on non-rectangular tiles
by explicitly specifying each cell of a tile explicitly


diffs (truncated from 1695 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
@@ -860,6 +860,12 @@ str ALGvariance(dbl *res, int *bid);
 str ALGvariancep(dbl *res, int *bid);
 str ARRAYfiller(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
 str ARRAYfiller_bat(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
+str ARRAYoffsets_bte(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
+str ARRAYoffsets_dbl(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
+str ARRAYoffsets_flt(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
+str ARRAYoffsets_int(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
+str ARRAYoffsets_lng(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
+str ARRAYoffsets_sht(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str ARRAYseries_bte(bat *ret, bte *start, bte *step, bte *stop, int *grp, int 
*series);
 str ARRAYseries_dbl(bat *ret, dbl *start, dbl *step, dbl *stop, int *grp, int 
*series);
 str ARRAYseries_flt(bat *ret, flt *start, flt *step, flt *stop, int *grp, int 
*series);
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
@@ -40,6 +40,14 @@ command series(start:@1, step:@1, stop:@
 address ARRAYseries_@1
 comment  "Generates a single series BAT based on range condition, repeating 
each value N times and repeat the process M times.";
 
+pattern offsets(val:@1) :bat[:oid,:@1]
+address ARRAYoffsets_@1
+comment "Generates an offsets BAT containing the given offset values.";
+
+pattern offsets(val:@1, any...) :bat[:oid,:@1]
+address ARRAYoffsets_@1
+comment "Generates an offsets BAT containing the given offset values.";
+
 function series_ (start:@1, step:@1, stop:@1, N:int, M:int) 
(id:bat[:oid,:lng], dimval:bat[:oid,:@1]);
        b1 := array.series(start, step, stop, N, M);
        b2 := bat.mirror(b1);
@@ -182,6 +190,7 @@ array_export str ARRAYtiles_cnt_@1_@2(Cl
 @
 @= array_defs
 array_export str ARRAYseries_@1(bat *ret, @1 *start, @1 *step, @1 *stop, int 
*grp, int *series);
+array_export str ARRAYoffsets_@1(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
 @:array_defs_DimType(@1,bte)@
 @:array_defs_DimType(@1,sht)@
 @:array_defs_DimType(@1,int)@
@@ -269,6 +278,39 @@ ARRAYseries_@1(bat *ret, @1 *start, @1 *
        return MAL_SUCCEED;
 }
 
+str
+ARRAYoffsets_@1(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
+{
+       bat *ret = (bat*) getArgReference(stk,pci,0);
+       BUN p, rescnt = pci->argc - pci->retc;
+       BAT *res;
+       @1 *resT;
+       int i;
+
+       (void) cntxt;
+       (void) mb;
+
+       res = BATnew(TYPE_void, TYPE_@1, rescnt);
+       if(res == NULL) {
+               throw(MAL, "array.offsets", MAL_MALLOC_FAIL);
+       }
+       resT = (@1*) Tloc(res, BUNfirst(res));
+
+       for (p = 0, i = pci->retc; p < rescnt; p++, i++)
+               resT[p] = *(@1*) getArgReference(stk,pci,i);
+
+       BATsetcount(res, rescnt);
+       BATseqbase(res, 0);
+       res->hdense = TRUE;
+       BATkey(res, TRUE);
+       res->hsorted = 1;
+       res->hrevsorted = (rescnt <= 1);
+       res->tsorted = res->trevsorted = (rescnt <= 1);
+       res->T->nonil = TRUE;
+       BBPkeepref(*ret = res->batCacheid);
+       return MAL_SUCCEED;
+}
+
 @c
 @:dim_wrapper_impl(bte,%d)@
 @:dim_wrapper_impl(sht,%d)@
diff --git a/sql/scripts/29_array.sql b/sql/scripts/29_array.sql
--- a/sql/scripts/29_array.sql
+++ b/sql/scripts/29_array.sql
@@ -36,6 +36,118 @@ create function array_series1("start" bi
 create function array_series1("start" real,     step real,     stop real,     
N integer, M integer) returns table (dimval real)     external name 
"array".series;
 create function array_series1("start" double,   step double,   stop double,   
N integer, M integer) returns table (dimval double)   external name 
"array".series;
 
+create function array_offsets(val tinyint ) returns table (val tinyint ) 
external name "array".offsets;
+create function array_offsets(val smallint) returns table (val smallint) 
external name "array".offsets;
+create function array_offsets(val integer ) returns table (val integer ) 
external name "array".offsets;
+create function array_offsets(val bigint  ) returns table (val bigint  ) 
external name "array".offsets;
+create function array_offsets(val real    ) returns table (val real    ) 
external name "array".offsets;
+create function array_offsets(val double  ) returns table (val double  ) 
external name "array".offsets;
+
+create function array_offsets(val tinyint , val tinyint ) returns table (val 
tinyint ) external name "array".offsets;
+create function array_offsets(val smallint, val smallint) returns table (val 
smallint) external name "array".offsets;
+create function array_offsets(val integer , val integer ) returns table (val 
integer ) external name "array".offsets;
+create function array_offsets(val bigint  , val bigint  ) returns table (val 
bigint  ) external name "array".offsets;
+create function array_offsets(val real    , val real    ) returns table (val 
real    ) external name "array".offsets;
+create function array_offsets(val double  , val double  ) returns table (val 
double  ) external name "array".offsets;
+
+create function array_offsets(val tinyint , val tinyint , val tinyint ) 
returns table (val tinyint ) external name "array".offsets;
+create function array_offsets(val smallint, val smallint, val smallint) 
returns table (val smallint) external name "array".offsets;
+create function array_offsets(val integer , val integer , val integer ) 
returns table (val integer ) external name "array".offsets;
+create function array_offsets(val bigint  , val bigint  , val bigint  ) 
returns table (val bigint  ) external name "array".offsets;
+create function array_offsets(val real    , val real    , val real    ) 
returns table (val real    ) external name "array".offsets;
+create function array_offsets(val double  , val double  , val double  ) 
returns table (val double  ) external name "array".offsets;
+
+create function array_offsets(val tinyint , val tinyint , val tinyint , val 
tinyint ) returns table (val tinyint ) external name "array".offsets;
+create function array_offsets(val smallint, val smallint, val smallint, val 
smallint) returns table (val smallint) external name "array".offsets;
+create function array_offsets(val integer , val integer , val integer , val 
integer ) returns table (val integer ) external name "array".offsets;
+create function array_offsets(val bigint  , val bigint  , val bigint  , val 
bigint  ) returns table (val bigint  ) external name "array".offsets;
+create function array_offsets(val real    , val real    , val real    , val 
real    ) returns table (val real    ) external name "array".offsets;
+create function array_offsets(val double  , val double  , val double  , val 
double  ) returns table (val double  ) external name "array".offsets;
+
+create function array_offsets(val tinyint , val tinyint , val tinyint , val 
tinyint , val tinyint ) returns table (val tinyint ) external name 
"array".offsets;
+create function array_offsets(val smallint, val smallint, val smallint, val 
smallint, val smallint) returns table (val smallint) external name 
"array".offsets;
+create function array_offsets(val integer , val integer , val integer , val 
integer , val integer ) returns table (val integer ) external name 
"array".offsets;
+create function array_offsets(val bigint  , val bigint  , val bigint  , val 
bigint  , val bigint  ) returns table (val bigint  ) external name 
"array".offsets;
+create function array_offsets(val real    , val real    , val real    , val 
real    , val real    ) returns table (val real    ) external name 
"array".offsets;
+create function array_offsets(val double  , val double  , val double  , val 
double  , val double  ) returns table (val double  ) external name 
"array".offsets;
+
+create function array_offsets(val tinyint , val tinyint , val tinyint , val 
tinyint , val tinyint , val tinyint ) returns table (val tinyint ) external 
name "array".offsets;
+create function array_offsets(val smallint, val smallint, val smallint, val 
smallint, val smallint, val smallint) returns table (val smallint) external 
name "array".offsets;
+create function array_offsets(val integer , val integer , val integer , val 
integer , val integer , val integer ) returns table (val integer ) external 
name "array".offsets;
+create function array_offsets(val bigint  , val bigint  , val bigint  , val 
bigint  , val bigint  , val bigint  ) returns table (val bigint  ) external 
name "array".offsets;
+create function array_offsets(val real    , val real    , val real    , val 
real    , val real    , val real    ) returns table (val real    ) external 
name "array".offsets;
+create function array_offsets(val double  , val double  , val double  , val 
double  , val double  , val double  ) returns table (val double  ) external 
name "array".offsets;
+
+create function array_offsets(val tinyint , val tinyint , val tinyint , val 
tinyint , val tinyint , val tinyint , val tinyint ) returns table (val tinyint 
) external name "array".offsets;
+create function array_offsets(val smallint, val smallint, val smallint, val 
smallint, val smallint, val smallint, val smallint) returns table (val 
smallint) external name "array".offsets;
+create function array_offsets(val integer , val integer , val integer , val 
integer , val integer , val integer , val integer ) returns table (val integer 
) external name "array".offsets;
+create function array_offsets(val bigint  , val bigint  , val bigint  , val 
bigint  , val bigint  , val bigint  , val bigint  ) returns table (val bigint  
) external name "array".offsets;
+create function array_offsets(val real    , val real    , val real    , val 
real    , val real    , val real    , val real    ) returns table (val real    
) external name "array".offsets;
+create function array_offsets(val double  , val double  , val double  , val 
double  , val double  , val double  , val double  ) returns table (val double  
) external name "array".offsets;
+
+create function array_offsets(val tinyint , val tinyint , val tinyint , val 
tinyint , val tinyint , val tinyint , val tinyint , val tinyint ) returns table 
(val tinyint ) external name "array".offsets;
+create function array_offsets(val smallint, val smallint, val smallint, val 
smallint, val smallint, val smallint, val smallint, val smallint) returns table 
(val smallint) external name "array".offsets;
+create function array_offsets(val integer , val integer , val integer , val 
integer , val integer , val integer , val integer , val integer ) returns table 
(val integer ) external name "array".offsets;
+create function array_offsets(val bigint  , val bigint  , val bigint  , val 
bigint  , val bigint  , val bigint  , val bigint  , val bigint  ) returns table 
(val bigint  ) external name "array".offsets;
+create function array_offsets(val real    , val real    , val real    , val 
real    , val real    , val real    , val real    , val real    ) returns table 
(val real    ) external name "array".offsets;
+create function array_offsets(val double  , val double  , val double  , val 
double  , val double  , val double  , val double  , val double  ) returns table 
(val double  ) external name "array".offsets;
+
+create function array_offsets(val tinyint , val tinyint , val tinyint , val 
tinyint , val tinyint , val tinyint , val tinyint , val tinyint , val tinyint ) 
returns table (val tinyint ) external name "array".offsets;
+create function array_offsets(val smallint, val smallint, val smallint, val 
smallint, val smallint, val smallint, val smallint, val smallint, val smallint) 
returns table (val smallint) external name "array".offsets;
+create function array_offsets(val integer , val integer , val integer , val 
integer , val integer , val integer , val integer , val integer , val integer ) 
returns table (val integer ) external name "array".offsets;
+create function array_offsets(val bigint  , val bigint  , val bigint  , val 
bigint  , val bigint  , val bigint  , val bigint  , val bigint  , val bigint  ) 
returns table (val bigint  ) external name "array".offsets;
+create function array_offsets(val real    , val real    , val real    , val 
real    , val real    , val real    , val real    , val real    , val real    ) 
returns table (val real    ) external name "array".offsets;
+create function array_offsets(val double  , val double  , val double  , val 
double  , val double  , val double  , val double  , val double  , val double  ) 
returns table (val double  ) external name "array".offsets;
+
+create function array_offsets(val tinyint , val tinyint , val tinyint , val 
tinyint , val tinyint , val tinyint , val tinyint , val tinyint , val tinyint , 
val tinyint ) returns table (val tinyint ) external name "array".offsets;
+create function array_offsets(val smallint, val smallint, val smallint, val 
smallint, val smallint, val smallint, val smallint, val smallint, val smallint, 
val smallint) returns table (val smallint) external name "array".offsets;
+create function array_offsets(val integer , val integer , val integer , val 
integer , val integer , val integer , val integer , val integer , val integer , 
val integer ) returns table (val integer ) external name "array".offsets;
+create function array_offsets(val bigint  , val bigint  , val bigint  , val 
bigint  , val bigint  , val bigint  , val bigint  , val bigint  , val bigint  , 
val bigint  ) returns table (val bigint  ) external name "array".offsets;
+create function array_offsets(val real    , val real    , val real    , val 
real    , val real    , val real    , val real    , val real    , val real    , 
val real    ) returns table (val real    ) external name "array".offsets;
+create function array_offsets(val double  , val double  , val double  , val 
double  , val double  , val double  , val double  , val double  , val double  , 
val double  ) returns table (val double  ) external name "array".offsets;
+
+create function array_offsets(val tinyint , val tinyint , val tinyint , val 
tinyint , val tinyint , val tinyint , val tinyint , val tinyint , val tinyint , 
val tinyint , val tinyint ) returns table (val tinyint ) external name 
"array".offsets;
+create function array_offsets(val smallint, val smallint, val smallint, val 
smallint, val smallint, val smallint, val smallint, val smallint, val smallint, 
val smallint, val smallint) returns table (val smallint) external name 
"array".offsets;
+create function array_offsets(val integer , val integer , val integer , val 
integer , val integer , val integer , val integer , val integer , val integer , 
val integer , val integer ) returns table (val integer ) external name 
"array".offsets;
+create function array_offsets(val bigint  , val bigint  , val bigint  , val 
bigint  , val bigint  , val bigint  , val bigint  , val bigint  , val bigint  , 
val bigint  , val bigint  ) returns table (val bigint  ) external name 
"array".offsets;
+create function array_offsets(val real    , val real    , val real    , val 
real    , val real    , val real    , val real    , val real    , val real    , 
val real    , val real    ) returns table (val real    ) external name 
"array".offsets;
+create function array_offsets(val double  , val double  , val double  , val 
double  , val double  , val double  , val double  , val double  , val double  , 
val double  , val double  ) returns table (val double  ) external name 
"array".offsets;
+
+create function array_offsets(val tinyint , val tinyint , val tinyint , val 
tinyint , val tinyint , val tinyint , val tinyint , val tinyint , val tinyint , 
val tinyint , val tinyint , val tinyint ) returns table (val tinyint ) external 
name "array".offsets;
+create function array_offsets(val smallint, val smallint, val smallint, val 
smallint, val smallint, val smallint, val smallint, val smallint, val smallint, 
val smallint, val smallint, val smallint) returns table (val smallint) external 
name "array".offsets;
+create function array_offsets(val integer , val integer , val integer , val 
integer , val integer , val integer , val integer , val integer , val integer , 
val integer , val integer , val integer ) returns table (val integer ) external 
name "array".offsets;
+create function array_offsets(val bigint  , val bigint  , val bigint  , val 
bigint  , val bigint  , val bigint  , val bigint  , val bigint  , val bigint  , 
val bigint  , val bigint  , val bigint  ) returns table (val bigint  ) external 
name "array".offsets;
+create function array_offsets(val real    , val real    , val real    , val 
real    , val real    , val real    , val real    , val real    , val real    , 
val real    , val real    , val real    ) returns table (val real    ) external 
name "array".offsets;
+create function array_offsets(val double  , val double  , val double  , val 
double  , val double  , val double  , val double  , val double  , val double  , 
val double  , val double  , val double  ) returns table (val double  ) external 
name "array".offsets;
+
+create function array_offsets(val tinyint , val tinyint , val tinyint , val 
tinyint , val tinyint , val tinyint , val tinyint , val tinyint , val tinyint , 
val tinyint , val tinyint , val tinyint , val tinyint ) returns table (val 
tinyint ) external name "array".offsets;
+create function array_offsets(val smallint, val smallint, val smallint, val 
smallint, val smallint, val smallint, val smallint, val smallint, val smallint, 
val smallint, val smallint, val smallint, val smallint) returns table (val 
smallint) external name "array".offsets;
+create function array_offsets(val integer , val integer , val integer , val 
integer , val integer , val integer , val integer , val integer , val integer , 
val integer , val integer , val integer , val integer ) returns table (val 
integer ) external name "array".offsets;
+create function array_offsets(val bigint  , val bigint  , val bigint  , val 
bigint  , val bigint  , val bigint  , val bigint  , val bigint  , val bigint  , 
val bigint  , val bigint  , val bigint  , val bigint  ) returns table (val 
bigint  ) external name "array".offsets;
+create function array_offsets(val real    , val real    , val real    , val 
real    , val real    , val real    , val real    , val real    , val real    , 
val real    , val real    , val real    , val real    ) returns table (val real 
   ) external name "array".offsets;
+create function array_offsets(val double  , val double  , val double  , val 
double  , val double  , val double  , val double  , val double  , val double  , 
val double  , val double  , val double  , val double  ) returns table (val 
double  ) external name "array".offsets;
+
+create function array_offsets(val tinyint , val tinyint , val tinyint , val 
tinyint , val tinyint , val tinyint , val tinyint , val tinyint , val tinyint , 
val tinyint , val tinyint , val tinyint , val tinyint , val tinyint ) returns 
table (val tinyint ) external name "array".offsets;
+create function array_offsets(val smallint, val smallint, val smallint, val 
smallint, val smallint, val smallint, val smallint, val smallint, val smallint, 
val smallint, val smallint, val smallint, val smallint, val smallint) returns 
table (val smallint) external name "array".offsets;
+create function array_offsets(val integer , val integer , val integer , val 
integer , val integer , val integer , val integer , val integer , val integer , 
val integer , val integer , val integer , val integer , val integer ) returns 
table (val integer ) external name "array".offsets;
+create function array_offsets(val bigint  , val bigint  , val bigint  , val 
bigint  , val bigint  , val bigint  , val bigint  , val bigint  , val bigint  , 
val bigint  , val bigint  , val bigint  , val bigint  , val bigint  ) returns 
table (val bigint  ) external name "array".offsets;
+create function array_offsets(val real    , val real    , val real    , val 
real    , val real    , val real    , val real    , val real    , val real    , 
val real    , val real    , val real    , val real    , val real    ) returns 
table (val real    ) external name "array".offsets;
+create function array_offsets(val double  , val double  , val double  , val 
double  , val double  , val double  , val double  , val double  , val double  , 
val double  , val double  , val double  , val double  , val double  ) returns 
table (val double  ) external name "array".offsets;
+
+create function array_offsets(val tinyint , val tinyint , val tinyint , val 
tinyint , val tinyint , val tinyint , val tinyint , val tinyint , val tinyint , 
val tinyint , val tinyint , val tinyint , val tinyint , val tinyint , val 
tinyint ) returns table (val tinyint ) external name "array".offsets;
+create function array_offsets(val smallint, val smallint, val smallint, val 
smallint, val smallint, val smallint, val smallint, val smallint, val smallint, 
val smallint, val smallint, val smallint, val smallint, val smallint, val 
smallint) returns table (val smallint) external name "array".offsets;
+create function array_offsets(val integer , val integer , val integer , val 
integer , val integer , val integer , val integer , val integer , val integer , 
val integer , val integer , val integer , val integer , val integer , val 
integer ) returns table (val integer ) external name "array".offsets;
+create function array_offsets(val bigint  , val bigint  , val bigint  , val 
bigint  , val bigint  , val bigint  , val bigint  , val bigint  , val bigint  , 
val bigint  , val bigint  , val bigint  , val bigint  , val bigint  , val 
bigint  ) returns table (val bigint  ) external name "array".offsets;
+create function array_offsets(val real    , val real    , val real    , val 
real    , val real    , val real    , val real    , val real    , val real    , 
val real    , val real    , val real    , val real    , val real    , val real  
  ) returns table (val real    ) external name "array".offsets;
+create function array_offsets(val double  , val double  , val double  , val 
double  , val double  , val double  , val double  , val double  , val double  , 
val double  , val double  , val double  , val double  , val double  , val 
double  ) returns table (val double  ) external name "array".offsets;
+
+create function array_offsets(val tinyint , val tinyint , val tinyint , val 
tinyint , val tinyint , val tinyint , val tinyint , val tinyint , val tinyint , 
val tinyint , val tinyint , val tinyint , val tinyint , val tinyint , val 
tinyint , val tinyint ) returns table (val tinyint ) external name 
"array".offsets;
+create function array_offsets(val smallint, val smallint, val smallint, val 
smallint, val smallint, val smallint, val smallint, val smallint, val smallint, 
val smallint, val smallint, val smallint, val smallint, val smallint, val 
smallint, val smallint) returns table (val smallint) external name 
"array".offsets;
+create function array_offsets(val integer , val integer , val integer , val 
integer , val integer , val integer , val integer , val integer , val integer , 
val integer , val integer , val integer , val integer , val integer , val 
integer , val integer ) returns table (val integer ) external name 
"array".offsets;
+create function array_offsets(val bigint  , val bigint  , val bigint  , val 
bigint  , val bigint  , val bigint  , val bigint  , val bigint  , val bigint  , 
val bigint  , val bigint  , val bigint  , val bigint  , val bigint  , val 
bigint  , val bigint  ) returns table (val bigint  ) external name 
"array".offsets;
+create function array_offsets(val real    , val real    , val real    , val 
real    , val real    , val real    , val real    , val real    , val real    , 
val real    , val real    , val real    , val real    , val real    , val real  
  , val real    ) returns table (val real    ) external name "array".offsets;
+create function array_offsets(val double  , val double  , val double  , val 
double  , val double  , val double  , val double  , val double  , val double  , 
val double  , val double  , val double  , val double  , val double  , val 
double  , val double  ) returns table (val double  ) external name 
"array".offsets;
+
 create function array_filler(count bigint, val tinyint)       returns table 
(id bigint, cellval tinyint)    external name "array".filler_;
 create function array_filler(count bigint, val smallint)      returns table 
(id bigint, cellval smallint)   external name "array".filler_;
 create function array_filler(count bigint, val integer)       returns table 
(id bigint, cellval integer)    external name "array".filler_;
diff --git 
a/sql/test/BugTracker-2012/Tests/predicate_select.Bug-3090.stable.out 
b/sql/test/BugTracker-2012/Tests/predicate_select.Bug-3090.stable.out
--- a/sql/test/BugTracker-2012/Tests/predicate_select.Bug-3090.stable.out
+++ b/sql/test/BugTracker-2012/Tests/predicate_select.Bug-3090.stable.out
@@ -27,7 +27,7 @@ Ready.
 % .tables,     .tables,        .tables,        .tables,        .tables,        
.tables,        .tables,        .tables,        .tables # table_name
 % id,  name,   schema_id,      query,  type,   system, commit_action,  
readonly,       temporary # name
 % int, varchar,        int,    varchar,        smallint,       boolean,        
smallint,       boolean,        tinyint # type
-% 4,   17,     4,      496,    1,      5,      1,      5,      1 # length
+% 5,   17,     4,      496,    1,      5,      1,      5,      1 # length
 [ 2001,        "schemas",      2000,   NULL,   0,      true,   0,      false,  
0       ]
 [ 2006,        "types",        2000,   NULL,   0,      true,   0,      false,  
0       ]
 [ 2015,        "functions",    2000,   NULL,   0,      true,   0,      false,  
0       ]
@@ -63,11 +63,11 @@ Ready.
 [ 5309,        "queryhistory", 2000,   NULL,   0,      true,   0,      false,  
0       ]
 [ 5323,        "callhistory",  2000,   NULL,   0,      true,   0,      false,  
0       ]
 [ 5340,        "querylog",     2000,   "create view querylog as\nselect qd.*, 
ql.ctime, ql.arguments, ql.exec, ql.result, ql.foot, ql.memory, ql.tuples, 
ql.inblock, ql.oublock from queryhistory qd, callhistory ql\nwhere qd.id = 
ql.id;",   1,      true,   0,      false,  0       ]
-[ 8623,        "files",        8617,   NULL,   0,      false,  0,      false,  
0       ]
-[ 8630,        "catalog",      8617,   NULL,   0,      false,  0,      false,  
0       ]
-[ 9104,        "storagemodelinput",    2000,   NULL,   0,      true,   0,      
false,  0       ]
-[ 9145,        "tablestoragemodel",    2000,   "-- A summary of the table 
storage requirement is is available as a table view.\n-- The auxillary column 
denotes the maximum space if all non-sorted columns\n-- would be augmented with 
a hash (rare situation)\ncreate view sys.tablestoragemodel\nas select 
\"schema\",\"table\",max(count) as \"count\",\n\tsum(columnsize) as 
columnsize,\n\tsum(heapsize) as heapsize,\n\tsum(indices) as 
indices,\n\tsum(case when sorted = false then 8 * count else 0 end) as 
auxillary\nfrom sys.storagemodel() group by \"schema\",\"table\";",      1,     
 true,   0,      false,  0       ]
-[ 9167,        "systemfunctions",      2000,   NULL,   0,      true,   0,      
false,  0       ]
+[ 9919,        "files",        9913,   NULL,   0,      false,  0,      false,  
0       ]
+[ 9926,        "catalog",      9913,   NULL,   0,      false,  0,      false,  
0       ]
+[ 10400,       "storagemodelinput",    2000,   NULL,   0,      true,   0,      
false,  0       ]
+[ 10441,       "tablestoragemodel",    2000,   "-- A summary of the table 
storage requirement is is available as a table view.\n-- The auxillary column 
denotes the maximum space if all non-sorted columns\n-- would be augmented with 
a hash (rare situation)\ncreate view sys.tablestoragemodel\nas select 
\"schema\",\"table\",max(count) as \"count\",\n\tsum(columnsize) as 
columnsize,\n\tsum(heapsize) as heapsize,\n\tsum(indices) as 
indices,\n\tsum(case when sorted = false then 8 * count else 0 end) as 
auxillary\nfrom sys.storagemodel() group by \"schema\",\"table\";",      1,     
 true,   0,      false,  0       ]
+[ 10463,       "systemfunctions",      2000,   NULL,   0,      true,   0,      
false,  0       ]
 
 # 18:53:13 >  
 # 18:53:13 >  "Done."
diff --git a/sql/test/Tests/systemfunctions.stable.out 
b/sql/test/Tests/systemfunctions.stable.out
--- a/sql/test/Tests/systemfunctions.stable.out
+++ b/sql/test/Tests/systemfunctions.stable.out
@@ -1836,6 +1836,918 @@ Ready.
 [ "sys",       "array_min",    8,      "int",  ""      ]
 [ "sys",       "array_min",    9,      "int",  ""      ]
 [ "sys",       "array_min",    10,     "int",  ""      ]
+[ "sys",       "array_offsets",        0,      "table",        "create 
function array_offsets(val tinyint ) returns table (val tinyint ) external name 
\"array\".offsets;"     ]
+[ "sys",       "array_offsets",        1,      "tinyint",      ""      ]
+[ "sys",       "array_offsets",        0,      "table",        "create 
function array_offsets(val smallint) returns table (val smallint) external name 
\"array\".offsets;"     ]
+[ "sys",       "array_offsets",        1,      "smallint",     ""      ]
+[ "sys",       "array_offsets",        0,      "table",        "create 
function array_offsets(val integer ) returns table (val integer ) external name 
\"array\".offsets;"     ]
+[ "sys",       "array_offsets",        1,      "int",  ""      ]
+[ "sys",       "array_offsets",        0,      "table",        "create 
function array_offsets(val bigint  ) returns table (val bigint  ) external name 
\"array\".offsets;"     ]
+[ "sys",       "array_offsets",        1,      "bigint",       ""      ]
+[ "sys",       "array_offsets",        0,      "table",        "create 
function array_offsets(val real    ) returns table (val real    ) external name 
\"array\".offsets;"     ]
+[ "sys",       "array_offsets",        1,      "real", ""      ]
+[ "sys",       "array_offsets",        0,      "table",        "create 
function array_offsets(val double  ) returns table (val double  ) external name 
\"array\".offsets;"     ]
+[ "sys",       "array_offsets",        1,      "double",       ""      ]
+[ "sys",       "array_offsets",        0,      "table",        "create 
function array_offsets(val tinyint , val tinyint ) returns table (val tinyint ) 
external name \"array\".offsets;"       ]
+[ "sys",       "array_offsets",        1,      "tinyint",      ""      ]
+[ "sys",       "array_offsets",        2,      "tinyint",      ""      ]
+[ "sys",       "array_offsets",        0,      "table",        "create 
function array_offsets(val smallint, val smallint) returns table (val smallint) 
external name \"array\".offsets;"       ]
+[ "sys",       "array_offsets",        1,      "smallint",     ""      ]
+[ "sys",       "array_offsets",        2,      "smallint",     ""      ]
+[ "sys",       "array_offsets",        0,      "table",        "create 
function array_offsets(val integer , val integer ) returns table (val integer ) 
external name \"array\".offsets;"       ]
+[ "sys",       "array_offsets",        1,      "int",  ""      ]
+[ "sys",       "array_offsets",        2,      "int",  ""      ]
+[ "sys",       "array_offsets",        0,      "table",        "create 
function array_offsets(val bigint  , val bigint  ) returns table (val bigint  ) 
external name \"array\".offsets;"       ]
+[ "sys",       "array_offsets",        1,      "bigint",       ""      ]
+[ "sys",       "array_offsets",        2,      "bigint",       ""      ]
+[ "sys",       "array_offsets",        0,      "table",        "create 
function array_offsets(val real    , val real    ) returns table (val real    ) 
external name \"array\".offsets;"       ]
+[ "sys",       "array_offsets",        1,      "real", ""      ]
+[ "sys",       "array_offsets",        2,      "real", ""      ]
+[ "sys",       "array_offsets",        0,      "table",        "create 
function array_offsets(val double  , val double  ) returns table (val double  ) 
external name \"array\".offsets;"       ]
+[ "sys",       "array_offsets",        1,      "double",       ""      ]
+[ "sys",       "array_offsets",        2,      "double",       ""      ]
+[ "sys",       "array_offsets",        0,      "table",        "create 
function array_offsets(val tinyint , val tinyint , val tinyint ) returns table 
(val tinyint ) external name \"array\".offsets;" ]
+[ "sys",       "array_offsets",        1,      "tinyint",      ""      ]
+[ "sys",       "array_offsets",        2,      "tinyint",      ""      ]
+[ "sys",       "array_offsets",        3,      "tinyint",      ""      ]
+[ "sys",       "array_offsets",        0,      "table",        "create 
function array_offsets(val smallint, val smallint, val smallint) returns table 
(val smallint) external name \"array\".offsets;" ]
+[ "sys",       "array_offsets",        1,      "smallint",     ""      ]
+[ "sys",       "array_offsets",        2,      "smallint",     ""      ]
+[ "sys",       "array_offsets",        3,      "smallint",     ""      ]
+[ "sys",       "array_offsets",        0,      "table",        "create 
function array_offsets(val integer , val integer , val integer ) returns table 
(val integer ) external name \"array\".offsets;" ]
+[ "sys",       "array_offsets",        1,      "int",  ""      ]
+[ "sys",       "array_offsets",        2,      "int",  ""      ]
+[ "sys",       "array_offsets",        3,      "int",  ""      ]
+[ "sys",       "array_offsets",        0,      "table",        "create 
function array_offsets(val bigint  , val bigint  , val bigint  ) returns table 
(val bigint  ) external name \"array\".offsets;" ]
+[ "sys",       "array_offsets",        1,      "bigint",       ""      ]
+[ "sys",       "array_offsets",        2,      "bigint",       ""      ]
+[ "sys",       "array_offsets",        3,      "bigint",       ""      ]
+[ "sys",       "array_offsets",        0,      "table",        "create 
function array_offsets(val real    , val real    , val real    ) returns table 
(val real    ) external name \"array\".offsets;" ]
+[ "sys",       "array_offsets",        1,      "real", ""      ]
+[ "sys",       "array_offsets",        2,      "real", ""      ]
+[ "sys",       "array_offsets",        3,      "real", ""      ]
+[ "sys",       "array_offsets",        0,      "table",        "create 
function array_offsets(val double  , val double  , val double  ) returns table 
(val double  ) external name \"array\".offsets;" ]
+[ "sys",       "array_offsets",        1,      "double",       ""      ]
+[ "sys",       "array_offsets",        2,      "double",       ""      ]
+[ "sys",       "array_offsets",        3,      "double",       ""      ]
+[ "sys",       "array_offsets",        0,      "table",        "create 
function array_offsets(val tinyint , val tinyint , val tinyint , val tinyint ) 
returns table (val tinyint ) external name \"array\".offsets;"   ]
+[ "sys",       "array_offsets",        1,      "tinyint",      ""      ]
+[ "sys",       "array_offsets",        2,      "tinyint",      ""      ]
+[ "sys",       "array_offsets",        3,      "tinyint",      ""      ]
+[ "sys",       "array_offsets",        4,      "tinyint",      ""      ]
+[ "sys",       "array_offsets",        0,      "table",        "create 
function array_offsets(val smallint, val smallint, val smallint, val smallint) 
returns table (val smallint) external name \"array\".offsets;"   ]
_______________________________________________
checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to