Changeset: 9f4f874527c0 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9f4f874527c0
Modified Files:
        monetdb5/modules/mal/mosaic_dictionary.c
        monetdb5/modules/mal/mosaic_frame.c
        monetdb5/modules/mal/mosaic_hdr.c
Branch: mosaic
Log Message:

Keep track of frequence in dictionaries


diffs (70 lines):

diff --git a/monetdb5/modules/mal/mosaic_dictionary.c 
b/monetdb5/modules/mal/mosaic_dictionary.c
--- a/monetdb5/modules/mal/mosaic_dictionary.c
+++ b/monetdb5/modules/mal/mosaic_dictionary.c
@@ -99,7 +99,7 @@ MOSlayout_dictionary_hdr(Client cntxt, M
                BUNappend(btech, "dictionary_hdr", FALSE);
                BUNappend(bcount, &i, FALSE);
                BUNappend(binput, &cnt, FALSE);
-               BUNappend(boutput, &cnt, FALSE);
+               BUNappend(boutput, &task->hdr->dictfreq[i], FALSE);
                BUNappend(bproperties, buf, FALSE);
        }
 }
@@ -322,6 +322,7 @@ MOSestimate_dictionary(Client cntxt, MOS
                if(j == hdr->dictsize || dict[j] != *val) \
                        break;\
                else {\
+                       hdr->dictfreq[j]++;\
                        MOSincCnt(blk,1);\
                        dictcompress(base,i,hdr->bits,j);\
                }\
@@ -370,6 +371,7 @@ MOScompress_dictionary(Client cntxt, MOS
                                if( j == hdr->dictsize || dict[j] != *val )
                                        break;
                                else {
+                                       hdr->dictfreq[j]++;
                                        MOSincCnt(blk,1);
                                        cid = i * hdr->bits/64;
                                        lshift= 63 -((i * hdr->bits) % 64) ;
diff --git a/monetdb5/modules/mal/mosaic_frame.c 
b/monetdb5/modules/mal/mosaic_frame.c
--- a/monetdb5/modules/mal/mosaic_frame.c
+++ b/monetdb5/modules/mal/mosaic_frame.c
@@ -104,7 +104,7 @@ MOSlayout_frame_hdr(Client cntxt, MOStas
                BUNappend(btech, "frame_hdr", FALSE);
                BUNappend(bcount, &i, FALSE);
                BUNappend(binput, &cnt, FALSE);
-               BUNappend(boutput, &cnt, FALSE);
+               BUNappend(boutput, &task->hdr->framefreq[i], FALSE);
                BUNappend(bproperties, buf, FALSE);
        }
 }
@@ -334,6 +334,7 @@ MOSestimate_frame(Client cntxt, MOStask 
                if(j == hdr->framesize || dict[j] != delta) \
                        break;\
                else {\
+                       hdr->framefreq[j]++;\
                        MOSincCnt(blk,1);\
                        framecompress(base,i,hdr->framebits,j);\
                }\
@@ -384,6 +385,7 @@ MOScompress_frame(Client cntxt, MOStask 
                                if( j == hdr->framesize || dict[j] != delta )
                                        break;
                                else {
+                                       hdr->framefreq[j]++;
                                        MOSincCnt(blk,1);
                                        cid = i * hdr->framebits/64;
                                        lshift= 63 -((i * hdr->framebits) % 64) 
;
diff --git a/monetdb5/modules/mal/mosaic_hdr.c 
b/monetdb5/modules/mal/mosaic_hdr.c
--- a/monetdb5/modules/mal/mosaic_hdr.c
+++ b/monetdb5/modules/mal/mosaic_hdr.c
@@ -101,6 +101,10 @@ MOSinitHeader(MOStask task)
        hdr->top = 0;
        hdr->checksum.sumlng = 0;
        hdr->checksum2.sumlng = 0;
+       for(i=0; i < 256; i++){
+               hdr->dictfreq[i]=0;
+               hdr->framefreq[i]=0;
+       }
 }
 
 // position the task on the mosaic blk to be scanned
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to