Changeset: 3d24e44f668f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3d24e44f668f
Modified Files:
        gdk/gdk_analytic_func.c
Branch: default
Log Message:

MSVC compiler bug should be fixed by now. Small cleanup and time to update


diffs (221 lines):

diff --git a/gdk/gdk_analytic_func.c b/gdk/gdk_analytic_func.c
--- a/gdk/gdk_analytic_func.c
+++ b/gdk/gdk_analytic_func.c
@@ -1004,7 +1004,7 @@ minmaxvarsized##IMP: \
 gdk_return                                                             \
 GDKanalytical##OP(BAT *r, BAT *p, BAT *o, BAT *b, BAT *s, BAT *e, int tpe, int 
frame_type)             \
 {                                                                      \
-       bool has_nils = false;                                          \
+       bool has_nils = false, last = false; \
        oid i = 0, j = 0, k = 0, l = 0, cnt = BATcount(b), *restrict start = s 
? (oid*)Tloc(s, 0) : NULL, *restrict end = e ? (oid*)Tloc(e, 0) : NULL, \
                *levels_offset = NULL, tree_capacity = 0, nlevels = 0;  \
        bit *np = p ? Tloc(p, 0) : NULL, *op = o ? Tloc(o, 0) : NULL;   \
@@ -1013,7 +1013,6 @@ GDKanalytical##OP(BAT *r, BAT *p, BAT *o
        int (*atomcmp)(const void *, const void *) = ATOMcompare(tpe); \
        void *segment_tree = NULL; \
        gdk_return res = GDK_SUCCEED; \
-       bool last = false ; \
        \
        if (cnt > 0) {  \
                switch (frame_type) {           \
@@ -1352,11 +1351,10 @@ GDKanalyticalcount(BAT *r, BAT *p, BAT *
        const void *restrict nil = ATOMnilptr(tpe);
        int (*cmp) (const void *, const void *) = ATOMcompare(tpe);
        const void *restrict bheap = Tloc(b, 0);
-       bool count_all = !ignore_nils || b->tnonil;
+       bool count_all = !ignore_nils || b->tnonil, last = false;
        BATiter bpi = bat_iterator(b);
        void *segment_tree = NULL;
        gdk_return res = GDK_SUCCEED;
-       bool last = false;
 
        if (cnt > 0) {
                switch (frame_type) {
@@ -1659,43 +1657,17 @@ sum##TPE1##TPE2##IMP: \
                }               \
        } while (0)
 
-static gdk_return /* This is a workaround for a MSVC compiler bug at build 
engine version 16.7.0+b89cb5fde Will test again after the next release */
-GDKanalyticalsumothers(BAT *r, BAT *p, bit *np, BAT *b, oid *restrict start, 
oid *restrict end, int tp1, int tp2)
+gdk_return
+GDKanalyticalsum(BAT *r, BAT *p, BAT *o, BAT *b, BAT *s, BAT *e, int tp1, int 
tp2, int frame_type)
 {
-       bool has_nils = false;
-       oid i = 0, j = 0, k = 0, cnt = BATcount(b), *levels_offset = NULL, 
tree_capacity = 0, nlevels = 0;
+       bool has_nils = false, last = false;
+       oid i = 0, j = 0, k = 0, l = 0, cnt = BATcount(b), *restrict start = s 
? (oid*)Tloc(s, 0) : NULL, *restrict end = e ? (oid*)Tloc(e, 0) : NULL,
+               *levels_offset = NULL, tree_capacity = 0, nlevels = 0;
+       bit *np = p ? Tloc(p, 0) : NULL, *op = o ? Tloc(o, 0) : NULL;
        int abort_on_error = 1;
        BUN nils = 0;
        void *segment_tree = NULL;
        gdk_return res = GDK_SUCCEED;
-       bool last = false;
-
-       ANALYTICAL_SUM_BRANCHES(OTHERS);
-
-       BATsetcount(r, cnt);
-       r->tnonil = !has_nils;
-       r->tnil = has_nils;
-       goto cleanup; /* all these gotos seem confusing but it cleans up the 
ending of the operator */
-calc_overflow:
-       GDKerror("22003!overflow in calculation.\n");
-       res = GDK_FAIL;
-cleanup:
-       GDKfree(segment_tree);
-       return res;
-nosupport:
-       GDKerror("42000!type combination (sum(%s)->%s) not supported.\n", 
ATOMname(tp1), ATOMname(tp2));
-       return GDK_FAIL;
-}
-
-gdk_return
-GDKanalyticalsum(BAT *r, BAT *p, BAT *o, BAT *b, BAT *s, BAT *e, int tp1, int 
tp2, int frame_type)
-{
-       bool has_nils = false;
-       oid i = 0, j = 0, k = 0, l = 0, cnt = BATcount(b), *restrict start = s 
? (oid*)Tloc(s, 0) : NULL, *restrict end = e ? (oid*)Tloc(e, 0) : NULL;
-       bit *np = p ? Tloc(p, 0) : NULL, *op = o ? Tloc(o, 0) : NULL;
-       int abort_on_error = 1;
-       BUN nils = 0;
-       bool last = false;
 
        if (cnt > 0) {
                switch (frame_type) {
@@ -1712,7 +1684,7 @@ GDKanalyticalsum(BAT *r, BAT *p, BAT *o,
                        ANALYTICAL_SUM_BRANCHES(CURRENT_ROW);
                } break;
                default: {
-                       return GDKanalyticalsumothers(r, p, np, b, start, end, 
tp1, tp2);
+                       ANALYTICAL_SUM_BRANCHES(OTHERS);
                }
                }
        }
@@ -1720,16 +1692,20 @@ GDKanalyticalsum(BAT *r, BAT *p, BAT *o,
        BATsetcount(r, cnt);
        r->tnonil = !has_nils;
        r->tnil = has_nils;
-       return GDK_SUCCEED;
-      bailout:
+       goto cleanup; /* all these gotos seem confusing but it cleans up the 
ending of the operator */
+bailout:
        GDKerror("42000!error while calculating floating-point sum\n");
-       return GDK_FAIL;
-      nosupport:
+       res = GDK_FAIL;
+       goto cleanup; 
+calc_overflow:
+       GDKerror("22003!overflow in calculation.\n");
+       res = GDK_FAIL;
+cleanup:
+       GDKfree(segment_tree);
+       return res;
+nosupport:
        GDKerror("42000!type combination (sum(%s)->%s) not supported.\n", 
ATOMname(tp1), ATOMname(tp2));
        return GDK_FAIL;
-      calc_overflow:
-       GDKerror("22003!overflow in calculation.\n");
-       return GDK_FAIL;
 }
 
 /* product on integers */
@@ -2193,7 +2169,7 @@ prod##TPE1##TPE2##IMP: \
 gdk_return
 GDKanalyticalprod(BAT *r, BAT *p, BAT *o, BAT *b, BAT *s, BAT *e, int tp1, int 
tp2, int frame_type)
 {
-       bool has_nils = false;
+       bool has_nils = false, last = false;
        oid i = 0, j = 0, k = 0, l = 0, cnt = BATcount(b), *restrict start = s 
? (oid*)Tloc(s, 0) : NULL, *restrict end = e ? (oid*)Tloc(e, 0) : NULL,
                *levels_offset = NULL, tree_capacity = 0, nlevels = 0;
        bit *np = p ? Tloc(p, 0) : NULL, *op = o ? Tloc(o, 0) : NULL;
@@ -2201,7 +2177,6 @@ GDKanalyticalprod(BAT *r, BAT *p, BAT *o
        BUN nils = 0;
        void *segment_tree = NULL;
        gdk_return res = GDK_SUCCEED;
-       bool last = false;
 
        if (cnt > 0) {
                switch (frame_type) {
@@ -2580,7 +2555,7 @@ avg_num_deltas(hge)
 gdk_return
 GDKanalyticalavg(BAT *r, BAT *p, BAT *o, BAT *b, BAT *s, BAT *e, int tpe, int 
frame_type)
 {
-       bool has_nils = false;
+       bool has_nils = false, last = false;
        oid i = 0, j = 0, k = 0, l = 0, cnt = BATcount(b), *restrict start = s 
? (oid*)Tloc(s, 0) : NULL, *restrict end = e ? (oid*)Tloc(e, 0) : NULL,
                *levels_offset = NULL, tree_capacity = 0, nlevels = 0;
        lng n = 0, rr = 0;
@@ -2590,7 +2565,6 @@ GDKanalyticalavg(BAT *r, BAT *p, BAT *o,
        BUN nils = 0;
        void *segment_tree = NULL;
        gdk_return res = GDK_SUCCEED;
-       bool last = false;
 #ifdef HAVE_HGE
        hge sum = 0;
 #else
@@ -2831,14 +2805,13 @@ avg_int_deltas(hge)
 gdk_return
 GDKanalyticalavginteger(BAT *r, BAT *p, BAT *o, BAT *b, BAT *s, BAT *e, int 
tpe, int frame_type)
 {
-       bool has_nils = false;
+       bool has_nils = false, last = false;
        oid i = 0, j = 0, k = 0, l = 0, cnt = BATcount(b), *restrict start = s 
? (oid*)Tloc(s, 0) : NULL, *restrict end = e ? (oid*)Tloc(e, 0) : NULL,
                *levels_offset = NULL, tree_capacity = 0, nlevels = 0;
        lng rem = 0, ncnt = 0;
        bit *np = p ? Tloc(p, 0) : NULL, *op = o ? Tloc(o, 0) : NULL;
        void *segment_tree = NULL;
        gdk_return res = GDK_SUCCEED;
-       bool last = false;
 
        if (cnt > 0) {
                switch (frame_type) {
@@ -3081,7 +3054,7 @@ statistics##TPE##IMP: \
 gdk_return \
 GDKanalytical_##NAME(BAT *r, BAT *p, BAT *o, BAT *b, BAT *s, BAT *e, int tpe, 
int frame_type) \
 { \
-       bool has_nils = false;  \
+       bool has_nils = false, last = false;    \
        oid i = 0, j = 0, k = 0, l = 0, cnt = BATcount(b), *restrict start = s 
? (oid*)Tloc(s, 0) : NULL, *restrict end = e ? (oid*)Tloc(e, 0) : NULL,  \
                *levels_offset = NULL, tree_capacity = 0, nlevels = 0; \
        lng n = 0;      \
@@ -3089,7 +3062,6 @@ GDKanalytical_##NAME(BAT *r, BAT *p, BAT
        dbl *restrict rb = (dbl *) Tloc(r, 0), mean = 0, m2 = 0, delta; \
        void *segment_tree = NULL; \
        gdk_return res = GDK_SUCCEED; \
-       bool last = false; \
        \
        if (cnt > 0) {  \
                switch (frame_type) {   \
@@ -3288,7 +3260,7 @@ typedef struct covariance_deltas {
 gdk_return \
 GDKanalytical_##NAME(BAT *r, BAT *p, BAT *o, BAT *b1, BAT *b2, BAT *s, BAT *e, 
int tpe, int frame_type) \
 { \
-       bool has_nils = false;  \
+       bool has_nils = false, last = false; \
        oid i = 0, j = 0, k = 0, l = 0, cnt = BATcount(b1), *restrict start = s 
? (oid*)Tloc(s, 0) : NULL, *restrict end = e ? (oid*)Tloc(e, 0) : NULL, \
                *levels_offset = NULL, tree_capacity = 0, nlevels = 0; \
        lng n = 0;      \
@@ -3296,7 +3268,6 @@ GDKanalytical_##NAME(BAT *r, BAT *p, BAT
        dbl *restrict rb = (dbl *) Tloc(r, 0), mean1 = 0, mean2 = 0, m2 = 0, 
delta1, delta2; \
        void *segment_tree = NULL; \
        gdk_return res = GDK_SUCCEED; \
-       bool last = false; \
        \
        if (cnt > 0) {  \
                switch (frame_type) {   \
@@ -3527,7 +3498,7 @@ typedef struct correlation_deltas {
 gdk_return
 GDKanalytical_correlation(BAT *r, BAT *p, BAT *o, BAT *b1, BAT *b2, BAT *s, 
BAT *e, int tpe, int frame_type)
 {
-       bool has_nils = false;
+       bool has_nils = false, last = false;
        oid i = 0, j = 0, k = 0, l = 0, cnt = BATcount(b1), *restrict start = s 
? (oid*)Tloc(s, 0) : NULL, *restrict end = e ? (oid*)Tloc(e, 0) : NULL,
                *levels_offset = NULL, tree_capacity = 0, nlevels = 0;
        lng n = 0;
@@ -3535,7 +3506,6 @@ GDKanalytical_correlation(BAT *r, BAT *p
        dbl *restrict rb = (dbl *) Tloc(r, 0), mean1 = 0, mean2 = 0, up = 0, 
down1 = 0, down2 = 0, delta1, delta2, aux, rr;
        void *segment_tree = NULL;
        gdk_return res = GDK_SUCCEED;
-       bool last = false;
 
        if (cnt > 0) {
                switch (frame_type) {
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to