Changeset: 4af43836222f for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4af43836222f
Modified Files:
        monetdb5/modules/atoms/batxml.c
        monetdb5/modules/atoms/json.c
        monetdb5/modules/mal/batcalc.c
        monetdb5/modules/mal/calc.c
Branch: default
Log Message:

More BATmark cleanup
Leaving some assertions behind, just in case.


diffs (126 lines):

diff --git a/monetdb5/modules/atoms/batxml.c b/monetdb5/modules/atoms/batxml.c
--- a/monetdb5/modules/atoms/batxml.c
+++ b/monetdb5/modules/atoms/batxml.c
@@ -1460,15 +1460,7 @@ BATxmlaggr(BAT **bnp, BAT *b, BAT *g, BA
                        goto out;
                }
                freeb = 1;
-               if (b->htype != TYPE_void) {
-                       t1 = BATmirror(BATmark(BATmirror(b), 0));
-                       if (t1 == NULL) {
-                               err = "internal mark failed";
-                               goto out;
-                       }
-                       BBPunfix(b->batCacheid);
-                       b = t1;
-               }
+               assert(b->htype); //headless guard
                if (g) {
                        g = BATleftjoin(s, g, BATcount(s));
                        if (g == NULL) {
@@ -1476,15 +1468,7 @@ BATxmlaggr(BAT **bnp, BAT *b, BAT *g, BA
                                goto out;
                        }
                        freeg = 1;
-                       if (g->htype != TYPE_void) {
-                               t1 = BATmirror(BATmark(BATmirror(g), 0));
-                               if (t1 == NULL) {
-                                       err = "internal mark failed";
-                                       goto out;
-                               }
-                               BBPunfix(g->batCacheid);
-                               g = t1;
-                       }
+                       assert(g->htype == TYPE_void);// headless guard
                }
        }
        if (g && BATtdense(g)) {
diff --git a/monetdb5/modules/atoms/json.c b/monetdb5/modules/atoms/json.c
--- a/monetdb5/modules/atoms/json.c
+++ b/monetdb5/modules/atoms/json.c
@@ -1858,6 +1858,7 @@ JSONjsonaggr(BAT **bnp, BAT *b, BAT *g, 
        if ((err = BATgroupaggrinit(b, g, e, s, &min, &max, &ngrp, &start, 
&end, &cnt, &cand, &candend)) !=NULL) {
                return err;
        }
+       assert(b->htype == TYPE_void); // headless guard
        assert(b->ttype == TYPE_str || b->ttype == TYPE_dbl);
        if (BATcount(b) == 0 || ngrp == 0) {
                bn = BATconstant(TYPE_str, ATOMnilptr(TYPE_str), ngrp, 
TRANSIENT);
@@ -1874,15 +1875,6 @@ JSONjsonaggr(BAT **bnp, BAT *b, BAT *g, 
                        goto out;
                }
                freeb = 1;
-               if (b->htype != TYPE_void) {
-                       t1 = BATmirror(BATmark(BATmirror(b), 0));
-                       if (t1 == NULL) {
-                               err = "internal mark failed";
-                               goto out;
-                       }
-                       BBPunfix(b->batCacheid);
-                       b = t1;
-               }
                if (g) {
                        g = BATleftjoin(s, g, BATcount(s));
                        if (g == NULL) {
@@ -1890,15 +1882,7 @@ JSONjsonaggr(BAT **bnp, BAT *b, BAT *g, 
                                goto out;
                        }
                        freeg = 1;
-                       if (g->htype != TYPE_void) {
-                               t1 = BATmirror(BATmark(BATmirror(g), 0));
-                               if (t1 == NULL) {
-                                       err = "internal mark failed";
-                                       goto out;
-                               }
-                               BBPunfix(g->batCacheid);
-                               g = t1;
-                       }
+                       assert(g->htype == TYPE_void); // headless guard
                }
        }
 
diff --git a/monetdb5/modules/mal/batcalc.c b/monetdb5/modules/mal/batcalc.c
--- a/monetdb5/modules/mal/batcalc.c
+++ b/monetdb5/modules/mal/batcalc.c
@@ -988,7 +988,7 @@ CMDcalcavg(Client cntxt, MalBlkPtr mb, M
        dbl avg;
        BUN vals;
        bat *bid;
-       BAT *b, *s = NULL, *t;
+       BAT *b, *s = NULL;
        gdk_return ret;
 
        (void) cntxt;
@@ -1005,12 +1005,7 @@ CMDcalcavg(Client cntxt, MalBlkPtr mb, M
                        throw(MAL, "aggr.avg", RUNTIME_OBJECT_MISSING);
                }
        }
-       if (!BAThdense(b)) {
-               t = BATmirror(BATmark(BATmirror(b), 0)); /* [dense,tail] */
-               BBPunfix(b->batCacheid);
-               b = t;
-               assert(s == NULL);
-       }
+       assert(b->htype == TYPE_void);// headless guard
        ret = BATcalcavg(b, s, &avg, &vals);
        BBPunfix(b->batCacheid);
        if (s)
diff --git a/monetdb5/modules/mal/calc.c b/monetdb5/modules/mal/calc.c
--- a/monetdb5/modules/mal/calc.c
+++ b/monetdb5/modules/mal/calc.c
@@ -803,14 +803,7 @@ CMDBATsumprod(MalBlkPtr mb, MalStkPtr st
                        }
                }
        }
-       if (s == NULL && !BAThdense(b)) {
-               /* XXX backward compatibility code: ignore non-dense head, but
-                * only if no candidate list */
-               s = BATmirror(BATmark(BATmirror(b), 0));
-               BBPunfix(b->batCacheid);
-               b = s;
-               s = NULL;
-       }
+       assert(BAThdense(b) && b->htype == TYPE_void); // headless guard
        r = (*sumprod)(VALget(ret), ret->vtype, b, s, 1, 1, nil_if_empty);
        BBPunfix(b->batCacheid);
        if (s)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to