Changeset: 2f0ea5681e0d for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2f0ea5681e0d
Modified Files:
monetdb5/modules/mal/xid.c
Branch: xid
Log Message:
on Martin's request: undoing changeset 83c126f1e88c to retrain statistics code
these counters are to be used to assess the relative impact of the encoded
components.
diffs (148 lines):
diff --git a/monetdb5/modules/mal/xid.c b/monetdb5/modules/mal/xid.c
--- a/monetdb5/modules/mal/xid.c
+++ b/monetdb5/modules/mal/xid.c
@@ -71,6 +71,7 @@ XIDencode(BUN *rtrn, XIDcolumn col, oid
oid o;
xid v, prev = 0, vmin = XID_VAL_MAX, vmax = 0;
BUN i=XID_IDX_BASE, scnt=0, max_size = MAX_COMPRESSED_SIZE +
XID_IDX_BASE;
+ //xid point=0, range=0,set=0;
o = *(oid*) p++;
assert(o <= XID_CNT_MAX);
@@ -84,6 +85,7 @@ XIDencode(BUN *rtrn, XIDcolumn col, oid
v = (xid) o;
col[i].x.val = v;
col[i].x.tag = XIDPOINT;
+ //mnstr_printf(GDKout,"xidpoint " BUNFMT " " XIDFMT "\n",i,v);
for ( ; p<q ; p++) {
o = *(oid*) p;
@@ -128,6 +130,7 @@ XIDencode(BUN *rtrn, XIDcolumn col, oid
col[i].x.val |= ( ((xid)1)<< (v -
col[i-1].x.val));
scnt++;
prev= v;
+ //mnstr_printf(GDKout,"xidset " BUNFMT " "
XIDFMT "\n",i,(xid) (v - col[i-1].x.val));
} else {
if (scnt == 1) { /* simplify decoding */
col[i].x.tag = XIDPOINT;
@@ -137,6 +140,8 @@ XIDencode(BUN *rtrn, XIDcolumn col, oid
i++;
col[i].x.tag = XIDPOINT;
col[i].x.val = v;
+ //mnstr_printf(GDKout,"xidpoint " BUNFMT " "
XIDFMT "\n",i,v);
+ //point++;
}
break;
case XIDSETDEC:
@@ -147,6 +152,7 @@ XIDencode(BUN *rtrn, XIDcolumn col, oid
col[i].x.val |= ( ((xid)1)<< (col[i-1].x.val -
v));
scnt++;
prev= v;
+ //mnstr_printf(GDKout,"xidset " BUNFMT " "
XIDFMT "\n",i,(xid) (v - col[i-1].x.val));
} else {
if (scnt == 1) { /* simplify decoding */
col[i].x.tag = XIDPOINT;
@@ -156,36 +162,47 @@ XIDencode(BUN *rtrn, XIDcolumn col, oid
i++;
col[i].x.tag = XIDPOINT;
col[i].x.val = v;
+ //mnstr_printf(GDKout,"xidpoint " BUNFMT " "
XIDFMT "\n",i,v);
+ //point++;
}
break;
case XIDRANGEEQ:
if ( (xid) col[i-1].x.val == v && col[i].x.val <
XID_VAL_MAX){
col[i].x.val++;
+ //mnstr_printf(GDKout,"xidrange " BUNFMT " "
XIDFMT " " XIDFMT "\n",i, (xid) col[i-1].x.val, v);
} else {
/* fall back to point if spread to large */
i++;
col[i].x.tag = XIDPOINT;
col[i].x.val = v;
+ //mnstr_printf(GDKout,"xidpoint " BUNFMT " "
XIDFMT "\n",i,v);
+ //point++;
}
break;
case XIDRANGEINC:
if ( (xid) col[i].x.val + 1 == v){
col[i].x.val = v;
+ //mnstr_printf(GDKout,"xidrange " BUNFMT " "
XIDFMT " " XIDFMT "\n",i, (xid) col[i-1].x.val, v);
} else {
/* fall back to point if spread to large */
i++;
col[i].x.tag = XIDPOINT;
col[i].x.val = v;
+ //mnstr_printf(GDKout,"xidpoint " BUNFMT " "
XIDFMT "\n",i,v);
+ //point++;
}
break;
case XIDRANGEDEC:
if ( (xid) col[i].x.val - 1 == v){
col[i].x.val = v;
+ //mnstr_printf(GDKout,"xidrange " BUNFMT " "
XIDFMT " " XIDFMT "\n",i, (xid) col[i-1].x.val, v);
} else {
/* fall back to point if spread to large */
i++;
col[i].x.tag = XIDPOINT;
col[i].x.val = v;
+ //mnstr_printf(GDKout,"xidpoint " BUNFMT " "
XIDFMT "\n",i,v);
+ //point++;
}
break;
case XIDPOINT:
@@ -202,18 +219,24 @@ XIDencode(BUN *rtrn, XIDcolumn col, oid
col[i].x.tag = XIDRANGEEQ;
col[++i].x.tag = XIDRANGEEQ;
col[i].x.val = 2;
+ //mnstr_printf(GDKout,"xidrange " BUNFMT " "
XIDFMT " " XIDFMT "\n",i, (xid) col[i-1].x.val, v);
+ //range++;
} else
if ( (xid) col[i].x.val + 1 == v){
/* make a new inc-range */
col[i].x.tag = XIDRANGEINC;
col[++i].x.tag = XIDRANGEINC;
col[i].x.val = v;
+ //mnstr_printf(GDKout,"xidrange " BUNFMT " "
XIDFMT " " XIDFMT "\n",i, (xid) col[i-1].x.val, v);
+ //range++;
} else
if ( (xid) col[i].x.val - 1 == v){
/* make a new dec-range */
col[i].x.tag = XIDRANGEDEC;
col[++i].x.tag = XIDRANGEDEC;
col[i].x.val = v;
+ //mnstr_printf(GDKout,"xidrange " BUNFMT " "
XIDFMT " " XIDFMT "\n",i, (xid) col[i-1].x.val, v);
+ //range++;
} else
if ( v > (xid) col[i].x.val && v <= vmax ){
/* make a new set */
@@ -222,6 +245,8 @@ XIDencode(BUN *rtrn, XIDcolumn col, oid
scnt = 1;
prev = v;
col[i].x.val = ((xid)1) << (v -col[i-1].x.val);
+ //mnstr_printf(GDKout,"xidset " BUNFMT " "
XIDFMT "\n",i,(xid) (v- col[i-1].x.val));
+ //set++;
} else
if ( v < (xid) col[i].x.val && v >= vmin ){
/* make a new set */
@@ -230,10 +255,13 @@ XIDencode(BUN *rtrn, XIDcolumn col, oid
scnt = 1;
prev = v;
col[i].x.val = ((xid)1) << (col[i-1].x.val - v);
+ //mnstr_printf(GDKout,"xidset " BUNFMT " "
XIDFMT "\n",i,(xid) (v- col[i-1].x.val));
+ //set++;
} else {
i++;
col[i].x.tag = XIDPOINT;
col[i].x.val = v;
+ //mnstr_printf(GDKout,"xidpoint " BUNFMT " "
XIDFMT "\n",i,v);
}
break;
default:
@@ -245,6 +273,7 @@ XIDencode(BUN *rtrn, XIDcolumn col, oid
return MAL_SUCCEED;
}
}
+ //mnstr_printf(GDKout,"stats point " XIDFMT " range " XIDFMT " set "
XIDFMT "\n",point,range,set);
*rtrn = i - XID_IDX_BASE;
return MAL_SUCCEED;
}
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list