Changeset: c833dce09130 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c833dce09130
Modified Files:
        gdk/gdk_imprints.c
        gdk/gdk_select.c
        monetdb5/modules/mal/remote.c
        monetdb5/optimizer/opt_statistics.c
        sql/storage/bat/bat_table.c
Branch: default
Log Message:

Get rid of unnecessary calls to BATmirror.


diffs (139 lines):

diff --git a/gdk/gdk_imprints.c b/gdk/gdk_imprints.c
--- a/gdk/gdk_imprints.c
+++ b/gdk/gdk_imprints.c
@@ -299,7 +299,7 @@ BATimprints(BAT *b)
        if (VIEWtparent(b)) {
                bat p = VIEWtparent(b);
                o = b;
-               b = BATmirror(BATdescriptor(p));
+               b = BATdescriptor(-p);
                if (BATcheckimprints(b)) {
                        BBPunfix(b->batCacheid);
                        return GDK_SUCCEED;
diff --git a/gdk/gdk_select.c b/gdk/gdk_select.c
--- a/gdk/gdk_select.c
+++ b/gdk/gdk_select.c
@@ -548,7 +548,7 @@ NAME##_##TYPE(BAT *b, BAT *s, BAT *bn, c
        assert(lval);                                                   \
        assert(hval);                                                   \
        if (use_imprints && VIEWtparent(b)) {                           \
-               BAT *parent = BATmirror(BATdescriptor(VIEWtparent(b))); \
+               BAT *parent = BATdescriptor(-VIEWtparent(b));           \
                basesrc = (const TYPE *) Tloc(parent, BUNfirst(parent)); \
                imprints = parent->T->imprints;                         \
                pr_off = (BUN) ((TYPE *)Tloc(b,0) -                     \
diff --git a/monetdb5/modules/mal/remote.c b/monetdb5/modules/mal/remote.c
--- a/monetdb5/modules/mal/remote.c
+++ b/monetdb5/modules/mal/remote.c
@@ -1015,7 +1015,7 @@ str RMTbatload(Client cntxt, MalBlkPtr m
 str RMTbincopyto(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        bat bid = *getArgReference_bat(stk, pci, 1);
-       BAT *b = BBPquickdesc(abs(bid), FALSE);
+       BAT *b = BBPquickdesc(bid, FALSE);
        char sendtheap = 0;
 
        (void)mb;
@@ -1025,10 +1025,6 @@ str RMTbincopyto(Client cntxt, MalBlkPtr
        if (b == NULL)
                throw(MAL, "remote.bincopyto", RUNTIME_OBJECT_UNDEFINED);
 
-       /* mirror when argument is mirrored */
-       if (bid < 0)
-               b = BATmirror(b);
-
        BBPfix(bid);
 
        sendtheap = b->ttype != TYPE_void && b->tvarsized;
diff --git a/monetdb5/optimizer/opt_statistics.c 
b/monetdb5/optimizer/opt_statistics.c
--- a/monetdb5/optimizer/opt_statistics.c
+++ b/monetdb5/optimizer/opt_statistics.c
@@ -92,64 +92,39 @@ QOTupdateStatistics(str nme, int actions
 {
        BATiter bi;
        BUN p;
-       oid idx;
        int ival=0, *ip= &ival;
        lng lval=0, *lp= &lval;
 
        QOTstatisticsInit();
        MT_lock_set(&qotlock);
-       p = BUNfnd(qotStat[QOTnames],(ptr)nme);
+       p = BUNfnd(qotStat[QOTnames], nme);
        if (p == BUN_NONE) {
                BUNappend(qotStat[QOTnames], nme, FALSE);
                BUNappend(qotStat[QOTcalls],  &ival, FALSE);
                BUNappend(qotStat[QOTactions], &ival, FALSE);
                BUNappend(qotStat[QOTtimings], &lval, FALSE);
-               p = BUNfnd(qotStat[QOTnames],(ptr)nme);
+               p = BUNfnd(qotStat[QOTnames], nme);
                if (p == BUN_NONE){
                        MT_lock_unset(&qotlock);
                        return;
                }
        }
-       idx = qotStat[QOTnames]->hseqbase + p - BUNfirst(qotStat[QOTnames]);
+       p -= BUNfirst(qotStat[QOTnames]);
 
-       p = BUNfnd(BATmirror(qotStat[QOTcalls]),&idx);
-       if (p == BUN_NONE) {
-#ifdef _Q_STATISTICS_DEBUG
-               mnstr_printf(GDKout,"#Could not access 'calls'\n");
-#endif
-               MT_lock_unset(&qotlock);
-               return;
-       }
        bi = bat_iterator(qotStat[QOTcalls]);
-       ip = (int*) BUNtail(bi,p);
+       ip = (int*) BUNtail(bi, p + BUNfirst(qotStat[QOTcalls]));
        *ip = *ip+1;
        bi.b->tsorted = bi.b->trevsorted = 0;
        bi.b->tkey = 0;
 
-       p = BUNfnd(BATmirror(qotStat[QOTactions]),&idx);
-       if (p == BUN_NONE){
-#ifdef _Q_STATISTICS_DEBUG
-               mnstr_printf(GDKout,"#Could not access 'actions'\n");
-#endif
-               MT_lock_unset(&qotlock);
-               return;
-       }
        bi = bat_iterator(qotStat[QOTactions]);
-       ip = (int*) BUNtail(bi,p);
+       ip = (int*) BUNtail(bi, p + BUNfirst(qotStat[QOTactions]));
        *ip = *ip+ actions;
        bi.b->tsorted = bi.b->trevsorted = 0;
        bi.b->tkey = 0;
 
-       p = BUNfnd(BATmirror(qotStat[QOTtimings]),&idx);
-       if (p == BUN_NONE){
-#ifdef _Q_STATISTICS_DEBUG
-               mnstr_printf(GDKout, "#Could not access 'timings'\n");
-#endif
-               MT_lock_unset(&qotlock);
-               return ;
-       }
        bi = bat_iterator(qotStat[QOTtimings]);
-       lp = (lng*) BUNtail(bi,p);
+       lp = (lng*) BUNtail(bi, p + BUNfirst(qotStat[QOTtimings]));
        *lp = *lp+ val;
        bi.b->tsorted = bi.b->trevsorted = 0;
        bi.b->tkey = 0;
diff --git a/sql/storage/bat/bat_table.c b/sql/storage/bat/bat_table.c
--- a/sql/storage/bat/bat_table.c
+++ b/sql/storage/bat/bat_table.c
@@ -225,8 +225,12 @@ column_find_value(sql_trans *tr, sql_col
        void *res = NULL;
 
        b = full_column(tr, c);
-       if (b)
-               q = BUNfnd(BATmirror(b), (ptr) &rid);
+       if (b) {
+               if (rid < b->hseqbase || rid >= b->hseqbase + BATcount(b))
+                       q = BUN_NONE;
+               else
+                       q = rid - b->hseqbase + BUNfirst(b);
+       }
        if (q != BUN_NONE) {
                BATiter bi = bat_iterator(b);
                void *r;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to