Changeset: 25dba272d62f for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=25dba272d62f
Modified Files:
        sql/backends/monet5/sql_aggr_bte.mal
        sql/backends/monet5/sql_aggr_dbl.mal
        sql/backends/monet5/sql_aggr_flt.mal
        sql/backends/monet5/sql_aggr_hge.mal
        sql/backends/monet5/sql_aggr_int.mal
        sql/backends/monet5/sql_aggr_lng.mal
        sql/backends/monet5/sql_aggr_sht.mal
        sql/backends/monet5/sql_aggr_wrd.mal
Branch: Jul2015
Log Message:

fixes for bug 3978, ie use the (not so) new sub* interface
for aggregates.


diffs (truncated from 351 to 300 lines):

diff --git a/sql/backends/monet5/sql_aggr_bte.mal 
b/sql/backends/monet5/sql_aggr_bte.mal
--- a/sql/backends/monet5/sql_aggr_bte.mal
+++ b/sql/backends/monet5/sql_aggr_bte.mal
@@ -28,28 +28,28 @@ function aggr.corr(e1:bat[:oid,:bte], e2
        return res;
 end aggr.corr;
 
-function aggr.covar(e1:bat[:oid,:bte], e2:bat[:oid,:bte], g:bat[:oid,:oid], 
e:bat[:oid,:any_2]):bat[:oid,:bte];
+function aggr.subcovar(e1:bat[:oid,:bte], e2:bat[:oid,:bte], g:bat[:oid,:oid], 
e:bat[:oid,:any_2],f:bit):bat[:oid,:bte];
        e0:bat[:oid,:bte] := batcalc.*(e1,e2);
-       s0:bat[:oid,:bte] := aggr.sum(e0,g,e);
-       s1:bat[:oid,:bte] := aggr.sum(e1,g,e);
-       s2:bat[:oid,:bte] := aggr.sum(e2,g,e);
+       s0:bat[:oid,:bte] := aggr.subsum(e0,g,e,f,true);
+       s1:bat[:oid,:bte] := aggr.subsum(e1,g,e,f,true);
+       s2:bat[:oid,:bte] := aggr.subsum(e2,g,e,f,true);
        v2:bat[:oid,:bte] := batcalc.*(s1,s2);
-       c := aggr.count(e1,g,e);
+       c := aggr.subcount(e1,g,e,f);
        n:bat[:oid,:bte] := batcalc.bte(c);
        v3:bat[:oid,:bte] := batcalc./(v2,n);
        v1:bat[:oid,:bte] := batcalc.-(s0,v3);
        v:bat[:oid,:bte] := batcalc./(v1,n);
        return v;
-end aggr.covar;
+end aggr.subcovar;
 
-function aggr.corr(e1:bat[:oid,:bte], e2:bat[:oid,:bte], 
g:bat[:oid,:oid],e:bat[:oid,:any_2]):bat[:oid,:bte];
-       cv:bat[:oid,:bte] := aggr.covar(e1,e2,g,e);
-       sd1 := aggr.stdevp(e1,g,e);
-       sd2 := aggr.stdevp(e2,g,e);
+function aggr.subcorr(e1:bat[:oid,:bte], e2:bat[:oid,:bte], 
g:bat[:oid,:oid],e:bat[:oid,:any_2],f:bit):bat[:oid,:bte];
+       cv:bat[:oid,:bte] := aggr.subcovar(e1,e2,g,e,f);
+       sd1 := aggr.substdevp(e1,g,e,f,true);
+       sd2 := aggr.substdevp(e2,g,e,f,true);
        sd := batcalc.*(sd1,sd2);
        sdn := batcalc.==(sd,0:bte);
-       sds := batcalc.ifthenelse(sdn,1:bte,sd);
+       sds := batcalc.ifthenelse(sdn,1:dbl,sd);
        r := batcalc./(cv,sds);
        res := batcalc.bte(r);
        return res;
-end aggr.corr;
+end aggr.subcorr;
diff --git a/sql/backends/monet5/sql_aggr_dbl.mal 
b/sql/backends/monet5/sql_aggr_dbl.mal
--- a/sql/backends/monet5/sql_aggr_dbl.mal
+++ b/sql/backends/monet5/sql_aggr_dbl.mal
@@ -28,28 +28,28 @@ function aggr.corr(e1:bat[:oid,:dbl], e2
        return res;
 end aggr.corr;
 
-function aggr.covar(e1:bat[:oid,:dbl], e2:bat[:oid,:dbl], g:bat[:oid,:oid], 
e:bat[:oid,:any_2]):bat[:oid,:dbl];
+function aggr.subcovar(e1:bat[:oid,:dbl], e2:bat[:oid,:dbl], g:bat[:oid,:oid], 
e:bat[:oid,:any_2],f:bit):bat[:oid,:dbl];
        e0:bat[:oid,:dbl] := batcalc.*(e1,e2);
-       s0:bat[:oid,:dbl] := aggr.sum(e0,g,e);
-       s1:bat[:oid,:dbl] := aggr.sum(e1,g,e);
-       s2:bat[:oid,:dbl] := aggr.sum(e2,g,e);
+       s0:bat[:oid,:dbl] := aggr.subsum(e0,g,e,f,true);
+       s1:bat[:oid,:dbl] := aggr.subsum(e1,g,e,f,true);
+       s2:bat[:oid,:dbl] := aggr.subsum(e2,g,e,f,true);
        v2:bat[:oid,:dbl] := batcalc.*(s1,s2);
-       c := aggr.count(e1,g,e);
+       c := aggr.subcount(e1,g,e,f);
        n:bat[:oid,:dbl] := batcalc.dbl(c);
        v3:bat[:oid,:dbl] := batcalc./(v2,n);
        v1:bat[:oid,:dbl] := batcalc.-(s0,v3);
        v:bat[:oid,:dbl] := batcalc./(v1,n);
        return v;
-end aggr.covar;
+end aggr.subcovar;
 
-function aggr.corr(e1:bat[:oid,:dbl], e2:bat[:oid,:dbl], 
g:bat[:oid,:oid],e:bat[:oid,:any_2]):bat[:oid,:dbl];
-       cv:bat[:oid,:dbl] := aggr.covar(e1,e2,g,e);
-       sd1 := aggr.stdevp(e1,g,e);
-       sd2 := aggr.stdevp(e2,g,e);
+function aggr.subcorr(e1:bat[:oid,:dbl], e2:bat[:oid,:dbl], 
g:bat[:oid,:oid],e:bat[:oid,:any_2],f:bit):bat[:oid,:dbl];
+       cv:bat[:oid,:dbl] := aggr.subcovar(e1,e2,g,e,f);
+       sd1 := aggr.substdevp(e1,g,e,f,true);
+       sd2 := aggr.substdevp(e2,g,e,f,true);
        sd := batcalc.*(sd1,sd2);
        sdn := batcalc.==(sd,0:dbl);
        sds := batcalc.ifthenelse(sdn,1:dbl,sd);
        r := batcalc./(cv,sds);
        res := batcalc.dbl(r);
        return res;
-end aggr.corr;
+end aggr.subcorr;
diff --git a/sql/backends/monet5/sql_aggr_flt.mal 
b/sql/backends/monet5/sql_aggr_flt.mal
--- a/sql/backends/monet5/sql_aggr_flt.mal
+++ b/sql/backends/monet5/sql_aggr_flt.mal
@@ -28,28 +28,28 @@ function aggr.corr(e1:bat[:oid,:flt], e2
        return res;
 end aggr.corr;
 
-function aggr.covar(e1:bat[:oid,:flt], e2:bat[:oid,:flt], g:bat[:oid,:oid], 
e:bat[:oid,:any_2]):bat[:oid,:flt];
+function aggr.subcovar(e1:bat[:oid,:flt], e2:bat[:oid,:flt], g:bat[:oid,:oid], 
e:bat[:oid,:any_2],f:bit):bat[:oid,:flt];
        e0:bat[:oid,:flt] := batcalc.*(e1,e2);
-       s0:bat[:oid,:flt] := aggr.sum(e0,g,e);
-       s1:bat[:oid,:flt] := aggr.sum(e1,g,e);
-       s2:bat[:oid,:flt] := aggr.sum(e2,g,e);
+       s0:bat[:oid,:flt] := aggr.subsum(e0,g,e,f,true);
+       s1:bat[:oid,:flt] := aggr.subsum(e1,g,e,f,true);
+       s2:bat[:oid,:flt] := aggr.subsum(e2,g,e,f,true);
        v2:bat[:oid,:flt] := batcalc.*(s1,s2);
-       c := aggr.count(e1,g,e);
+       c := aggr.subcount(e1,g,e,f);
        n:bat[:oid,:flt] := batcalc.flt(c);
        v3:bat[:oid,:flt] := batcalc./(v2,n);
        v1:bat[:oid,:flt] := batcalc.-(s0,v3);
        v:bat[:oid,:flt] := batcalc./(v1,n);
        return v;
-end aggr.covar;
+end aggr.subcovar;
 
-function aggr.corr(e1:bat[:oid,:flt], e2:bat[:oid,:flt], 
g:bat[:oid,:oid],e:bat[:oid,:any_2]):bat[:oid,:flt];
-       cv:bat[:oid,:flt] := aggr.covar(e1,e2,g,e);
-       sd1 := aggr.stdevp(e1,g,e);
-       sd2 := aggr.stdevp(e2,g,e);
+function aggr.subcorr(e1:bat[:oid,:flt], e2:bat[:oid,:flt], 
g:bat[:oid,:oid],e:bat[:oid,:any_2],f:bit):bat[:oid,:flt];
+       cv:bat[:oid,:flt] := aggr.subcovar(e1,e2,g,e,f);
+       sd1 := aggr.substdevp(e1,g,e,f,true);
+       sd2 := aggr.substdevp(e2,g,e,f,true);
        sd := batcalc.*(sd1,sd2);
        sdn := batcalc.==(sd,0:flt);
-       sds := batcalc.ifthenelse(sdn,1:flt,sd);
+       sds := batcalc.ifthenelse(sdn,1:dbl,sd);
        r := batcalc./(cv,sds);
        res := batcalc.flt(r);
        return res;
-end aggr.corr;
+end aggr.subcorr;
diff --git a/sql/backends/monet5/sql_aggr_hge.mal 
b/sql/backends/monet5/sql_aggr_hge.mal
--- a/sql/backends/monet5/sql_aggr_hge.mal
+++ b/sql/backends/monet5/sql_aggr_hge.mal
@@ -28,28 +28,28 @@ function aggr.corr(e1:bat[:oid,:hge], e2
        return res;
 end aggr.corr;
 
-function aggr.covar(e1:bat[:oid,:hge], e2:bat[:oid,:hge], g:bat[:oid,:oid], 
e:bat[:oid,:any_2]):bat[:oid,:hge];
+function aggr.subcovar(e1:bat[:oid,:hge], e2:bat[:oid,:hge], g:bat[:oid,:oid], 
e:bat[:oid,:any_2],f:bit):bat[:oid,:hge];
        e0:bat[:oid,:hge] := batcalc.*(e1,e2);
-       s0:bat[:oid,:hge] := aggr.sum(e0,g,e);
-       s1:bat[:oid,:hge] := aggr.sum(e1,g,e);
-       s2:bat[:oid,:hge] := aggr.sum(e2,g,e);
+       s0:bat[:oid,:hge] := aggr.subsum(e0,g,e,f,true);
+       s1:bat[:oid,:hge] := aggr.subsum(e1,g,e,f,true);
+       s2:bat[:oid,:hge] := aggr.subsum(e2,g,e,f,true);
        v2:bat[:oid,:hge] := batcalc.*(s1,s2);
-       c := aggr.count(e1,g,e);
+       c := aggr.subcount(e1,g,e,f);
        n:bat[:oid,:hge] := batcalc.hge(c);
        v3:bat[:oid,:hge] := batcalc./(v2,n);
        v1:bat[:oid,:hge] := batcalc.-(s0,v3);
        v:bat[:oid,:hge] := batcalc./(v1,n);
        return v;
-end aggr.covar;
+end aggr.subcovar;
 
-function aggr.corr(e1:bat[:oid,:hge], e2:bat[:oid,:hge], 
g:bat[:oid,:oid],e:bat[:oid,:any_2]):bat[:oid,:hge];
-       cv:bat[:oid,:hge] := aggr.covar(e1,e2,g,e);
-       sd1 := aggr.stdevp(e1,g,e);
-       sd2 := aggr.stdevp(e2,g,e);
+function aggr.subcorr(e1:bat[:oid,:hge], e2:bat[:oid,:hge], 
g:bat[:oid,:oid],e:bat[:oid,:any_2],f:bit):bat[:oid,:hge];
+       cv:bat[:oid,:hge] := aggr.subcovar(e1,e2,g,e,f);
+       sd1 := aggr.substdevp(e1,g,e,f,true);
+       sd2 := aggr.substdevp(e2,g,e,f,true);
        sd := batcalc.*(sd1,sd2);
        sdn := batcalc.==(sd,0:hge);
-       sds := batcalc.ifthenelse(sdn,1:hge,sd);
+       sds := batcalc.ifthenelse(sdn,1:dbl,sd);
        r := batcalc./(cv,sds);
        res := batcalc.hge(r);
        return res;
-end aggr.corr;
+end aggr.subcorr;
diff --git a/sql/backends/monet5/sql_aggr_int.mal 
b/sql/backends/monet5/sql_aggr_int.mal
--- a/sql/backends/monet5/sql_aggr_int.mal
+++ b/sql/backends/monet5/sql_aggr_int.mal
@@ -28,28 +28,28 @@ function aggr.corr(e1:bat[:oid,:int], e2
        return res;
 end aggr.corr;
 
-function aggr.covar(e1:bat[:oid,:int], e2:bat[:oid,:int], g:bat[:oid,:oid], 
e:bat[:oid,:any_2]):bat[:oid,:int];
+function aggr.subcovar(e1:bat[:oid,:int], e2:bat[:oid,:int], g:bat[:oid,:oid], 
e:bat[:oid,:any_2],f:bit):bat[:oid,:int];
        e0:bat[:oid,:int] := batcalc.*(e1,e2);
-       s0:bat[:oid,:int] := aggr.sum(e0,g,e);
-       s1:bat[:oid,:int] := aggr.sum(e1,g,e);
-       s2:bat[:oid,:int] := aggr.sum(e2,g,e);
+       s0:bat[:oid,:int] := aggr.subsum(e0,g,e,f,true);
+       s1:bat[:oid,:int] := aggr.subsum(e1,g,e,f,true);
+       s2:bat[:oid,:int] := aggr.subsum(e2,g,e,f,true);
        v2:bat[:oid,:int] := batcalc.*(s1,s2);
-       c := aggr.count(e1,g,e);
+       c := aggr.subcount(e1,g,e,f);
        n:bat[:oid,:int] := batcalc.int(c);
        v3:bat[:oid,:int] := batcalc./(v2,n);
        v1:bat[:oid,:int] := batcalc.-(s0,v3);
        v:bat[:oid,:int] := batcalc./(v1,n);
        return v;
-end aggr.covar;
+end aggr.subcovar;
 
-function aggr.corr(e1:bat[:oid,:int], e2:bat[:oid,:int], 
g:bat[:oid,:oid],e:bat[:oid,:any_2]):bat[:oid,:int];
-       cv:bat[:oid,:int] := aggr.covar(e1,e2,g,e);
-       sd1 := aggr.stdevp(e1,g,e);
-       sd2 := aggr.stdevp(e2,g,e);
+function aggr.subcorr(e1:bat[:oid,:int], e2:bat[:oid,:int], 
g:bat[:oid,:oid],e:bat[:oid,:any_2],f:bit):bat[:oid,:int];
+       cv:bat[:oid,:int] := aggr.subcovar(e1,e2,g,e,f);
+       sd1 := aggr.substdevp(e1,g,e,f,true);
+       sd2 := aggr.substdevp(e2,g,e,f,true);
        sd := batcalc.*(sd1,sd2);
        sdn := batcalc.==(sd,0:int);
-       sds := batcalc.ifthenelse(sdn,1:int,sd);
+       sds := batcalc.ifthenelse(sdn,1:dbl,sd);
        r := batcalc./(cv,sds);
        res := batcalc.int(r);
        return res;
-end aggr.corr;
+end aggr.subcorr;
diff --git a/sql/backends/monet5/sql_aggr_lng.mal 
b/sql/backends/monet5/sql_aggr_lng.mal
--- a/sql/backends/monet5/sql_aggr_lng.mal
+++ b/sql/backends/monet5/sql_aggr_lng.mal
@@ -28,28 +28,28 @@ function aggr.corr(e1:bat[:oid,:lng], e2
        return res;
 end aggr.corr;
 
-function aggr.covar(e1:bat[:oid,:lng], e2:bat[:oid,:lng], g:bat[:oid,:oid], 
e:bat[:oid,:any_2]):bat[:oid,:lng];
+function aggr.subcovar(e1:bat[:oid,:lng], e2:bat[:oid,:lng], g:bat[:oid,:oid], 
e:bat[:oid,:any_2],f:bit):bat[:oid,:lng];
        e0:bat[:oid,:lng] := batcalc.*(e1,e2);
-       s0:bat[:oid,:lng] := aggr.sum(e0,g,e);
-       s1:bat[:oid,:lng] := aggr.sum(e1,g,e);
-       s2:bat[:oid,:lng] := aggr.sum(e2,g,e);
+       s0:bat[:oid,:lng] := aggr.subsum(e0,g,e,f,true);
+       s1:bat[:oid,:lng] := aggr.subsum(e1,g,e,f,true);
+       s2:bat[:oid,:lng] := aggr.subsum(e2,g,e,f,true);
        v2:bat[:oid,:lng] := batcalc.*(s1,s2);
-       c := aggr.count(e1,g,e);
+       c := aggr.subcount(e1,g,e,f);
        n:bat[:oid,:lng] := batcalc.lng(c);
        v3:bat[:oid,:lng] := batcalc./(v2,n);
        v1:bat[:oid,:lng] := batcalc.-(s0,v3);
        v:bat[:oid,:lng] := batcalc./(v1,n);
        return v;
-end aggr.covar;
+end aggr.subcovar;
 
-function aggr.corr(e1:bat[:oid,:lng], e2:bat[:oid,:lng], 
g:bat[:oid,:oid],e:bat[:oid,:any_2]):bat[:oid,:lng];
-       cv:bat[:oid,:lng] := aggr.covar(e1,e2,g,e);
-       sd1 := aggr.stdevp(e1,g,e);
-       sd2 := aggr.stdevp(e2,g,e);
+function aggr.subcorr(e1:bat[:oid,:lng], e2:bat[:oid,:lng], 
g:bat[:oid,:oid],e:bat[:oid,:any_2],f:bit):bat[:oid,:lng];
+       cv:bat[:oid,:lng] := aggr.subcovar(e1,e2,g,e,f);
+       sd1 := aggr.substdevp(e1,g,e,f,true);
+       sd2 := aggr.substdevp(e2,g,e,f,true);
        sd := batcalc.*(sd1,sd2);
        sdn := batcalc.==(sd,0:lng);
-       sds := batcalc.ifthenelse(sdn,1:lng,sd);
+       sds := batcalc.ifthenelse(sdn,1:dbl,sd);
        r := batcalc./(cv,sds);
        res := batcalc.lng(r);
        return res;
-end aggr.corr;
+end aggr.subcorr;
diff --git a/sql/backends/monet5/sql_aggr_sht.mal 
b/sql/backends/monet5/sql_aggr_sht.mal
--- a/sql/backends/monet5/sql_aggr_sht.mal
+++ b/sql/backends/monet5/sql_aggr_sht.mal
@@ -28,28 +28,28 @@ function aggr.corr(e1:bat[:oid,:sht], e2
        return res;
 end aggr.corr;
 
-function aggr.covar(e1:bat[:oid,:sht], e2:bat[:oid,:sht], g:bat[:oid,:oid], 
e:bat[:oid,:any_2]):bat[:oid,:sht];
+function aggr.subcovar(e1:bat[:oid,:sht], e2:bat[:oid,:sht], g:bat[:oid,:oid], 
e:bat[:oid,:any_2],f:bit):bat[:oid,:sht];
        e0:bat[:oid,:sht] := batcalc.*(e1,e2);
-       s0:bat[:oid,:sht] := aggr.sum(e0,g,e);
-       s1:bat[:oid,:sht] := aggr.sum(e1,g,e);
-       s2:bat[:oid,:sht] := aggr.sum(e2,g,e);
+       s0:bat[:oid,:sht] := aggr.subsum(e0,g,e,f,true);
+       s1:bat[:oid,:sht] := aggr.subsum(e1,g,e,f,true);
+       s2:bat[:oid,:sht] := aggr.subsum(e2,g,e,f,true);
        v2:bat[:oid,:sht] := batcalc.*(s1,s2);
-       c := aggr.count(e1,g,e);
+       c := aggr.subcount(e1,g,e,f);
        n:bat[:oid,:sht] := batcalc.sht(c);
        v3:bat[:oid,:sht] := batcalc./(v2,n);
        v1:bat[:oid,:sht] := batcalc.-(s0,v3);
        v:bat[:oid,:sht] := batcalc./(v1,n);
        return v;
-end aggr.covar;
+end aggr.subcovar;
 
-function aggr.corr(e1:bat[:oid,:sht], e2:bat[:oid,:sht], 
g:bat[:oid,:oid],e:bat[:oid,:any_2]):bat[:oid,:sht];
-       cv:bat[:oid,:sht] := aggr.covar(e1,e2,g,e);
-       sd1 := aggr.stdevp(e1,g,e);
-       sd2 := aggr.stdevp(e2,g,e);
+function aggr.subcorr(e1:bat[:oid,:sht], e2:bat[:oid,:sht], 
g:bat[:oid,:oid],e:bat[:oid,:any_2],f:bit):bat[:oid,:sht];
+       cv:bat[:oid,:sht] := aggr.subcovar(e1,e2,g,e,f);
+       sd1 := aggr.substdevp(e1,g,e,f,true);
+       sd2 := aggr.substdevp(e2,g,e,f,true);
        sd := batcalc.*(sd1,sd2);
        sdn := batcalc.==(sd,0:sht);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to