Changeset: abdc78f0bbd1 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/abdc78f0bbd1
Modified Files:
gdk/gdk.h
gdk/gdk_bat.c
gdk/gdk_sketch.c
Branch: persistent_sketches
Log Message:
Cosmetics + don't cheat in sketches
diffs (109 lines):
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -1633,7 +1633,7 @@ typedef struct BAT {
Heap *theap; /* space for the column. */
BUN tbaseoff; /* offset in heap->base (in whole items) */
Heap *tvheap; /* space for the varsized data. */
- Heap *tsketch;
+ Heap *tsketch; /* probabilistic counting sketch */
Hash *thash; /* hash table */
#ifdef HAVE_RTREE
RTree *trtree; /* rtree geometric index */
diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c
--- a/gdk/gdk_bat.c
+++ b/gdk/gdk_bat.c
@@ -205,19 +205,18 @@ BATcreatedesc(oid hseq, int tt, bool hea
bn->theap->parentid = bn->batCacheid;
const char *nme = BBP_physical(bn->batCacheid);
settailname(bn->theap, nme, tt, width);
-
+ if (bn->tvheap) {
+ bn->tvheap->parentid = bn->batCacheid;
+ strtconcat(bn->tvheap->filename,
+ sizeof(bn->tvheap->filename),
+ nme, ".theap", NULL);
+ }
if (bn->tsketch) {
bn->tsketch->parentid = bn->batCacheid;
strtconcat(bn->tsketch->filename,
sizeof(bn->tsketch->filename),
nme, ".tsketch", NULL);
}
- if (bn->tvheap) {
- bn->tvheap->parentid = bn->batCacheid;
- strtconcat(bn->tvheap->filename,
- sizeof(bn->tvheap->filename),
- nme, ".theap", NULL);
- }
}
char name[MT_NAME_LEN];
snprintf(name, sizeof(name), "heaplock%d", bn->batCacheid); /* fits */
@@ -1384,8 +1383,8 @@ BUNappendmulti(BAT *b, const void *value
}
b->tminpos = bi.minpos;
b->tmaxpos = bi.maxpos;
- /* if (count > BATcount(b) / gdk_unique_estimate_keep_fraction) */
- /* b->tunique_est = 0; */
+ if (count > BATcount(b) / gdk_unique_estimate_keep_fraction)
+ b->tunique_est = 0;
if (b->ttype == TYPE_oid) {
/* spend extra effort on oid (possible candidate list) */
diff --git a/gdk/gdk_sketch.c b/gdk/gdk_sketch.c
--- a/gdk/gdk_sketch.c
+++ b/gdk/gdk_sketch.c
@@ -142,7 +142,7 @@ sketch_update_many(BATiter *bi, uint8_t
const void *values, size_t count)
{
gdk_return rc = GDK_SUCCEED;
- assert(sketch && values && (count > 0));
+ assert(sketch && (count > 0));
QryCtx *qry_ctx = MT_thread_get_qry_ctx();
random_state_engine rse;
init_random_state_engine(rse, (uint64_t) GDKusec());
@@ -167,6 +167,8 @@ sketch_update_many(BATiter *bi, uint8_t
v = (offset = VarHeapVal(bi->base, i,
bi->width)) == 0 ?
atomnil : bi->vh->base + offset;
} else {
+ if (values == NULL)
+ values = bi->base;
v = (void *) ((char *) values + (i << values_s));
}
if (atomeq(v, atomnil))
@@ -186,6 +188,9 @@ sketch_merge(uint8_t (*dst)[CLZ_BUCKETS]
for (size_t j = 0; j < CLZ_BUCKETS; j++)
if (src[i][j] > dst[i][j])
dst[i][j] = src[i][j];
+ /* for (size_t i = 0; i < BUCKETS; i++) */
+ /* for (size_t j = 0; j < CLZ_BUCKETS; j++) */
+ /* dst[i][j] = dst[i][j] + src[i][j]; */
return GDK_SUCCEED;
}
@@ -193,7 +198,6 @@ gdk_return
bat_sketch(BATiter *bi, struct canditer *bci, uint8_t (*sketch)[CLZ_BUCKETS])
{
gdk_return rc = GDK_SUCCEED;
- lng t0 = GDKusec();
BAT *b = bi->b;
struct canditer n_bci;
@@ -204,7 +208,7 @@ bat_sketch(BATiter *bi, struct canditer
canditer_reset(&n_bci);
}
- if (false && n_bci.tpe == cand_dense) {
+ if (n_bci.tpe == cand_dense) {
rc = sketch_update_many(bi, sketch, NULL, n_bci.ncand);
} else {
QryCtx *qry_ctx = MT_thread_get_qry_ctx();
@@ -227,8 +231,6 @@ bat_sketch(BATiter *bi, struct canditer
}
}
- TRC_DEBUG(ALGO, ALGOBATFMT " "LLFMT" usec\n", ALGOBATPAR(b),
- GDKusec() - t0);
return rc;
}
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]