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]

Reply via email to