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