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

Create a better skip list


diffs (47 lines):

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
@@ -32,7 +32,7 @@ MOSdumpHeader(Client cntxt, MOStask task
        MosaicHdr hdr = (MosaicHdr) task->hdr;
        int i=0;
 
-#ifdef _DEBGUG_MOSAIC_
+#ifdef _DEBUG_MOSAIC_
        mnstr_printf(cntxt->fdout,"#header block version %d\n", hdr->version);
        mnstr_printf(cntxt->fdout,"#index top %d\n", hdr->top);
        for(i= 0; i< hdr->top; i++)
@@ -71,17 +71,17 @@ MOSupdateHeader(Client cntxt, MOStask ta
        hdr->oidbase[hdr->top] = MOSgetCnt(task->blk) + 
hdr->oidbase[hdr->top-1];
        hdr->offset[hdr->top] =  (BUN) (task->dst - (char*) task->hdr);
        minsize = hdr->offset[2];
-       j = 0;
-       for( i = 0; i < hdr->top-1; i++)
-       if ( hdr->offset[i] - hdr->offset[i+2] < minsize ){
-               minsize = hdr->offset[i] - hdr->offset[i+2];
-               j = i;
+       j = 1;
+       for( i = 1; i+2 <= hdr->top; i++)
+       if ( hdr->offset[i+2] - hdr->offset[i] < minsize ){
+               minsize = hdr->offset[i+2] - hdr->offset[i];
+               j = i+1;
        }
 #ifdef _DEBUG_MOSAIC_
        mnstr_printf(cntxt->fdout,"#ditch entry %d\n",j);
 #endif
        // simply remove on element
-       for( i = j+1; i < hdr->top; i++){
+       for( i = j; i < hdr->top; i++){
                hdr->oidbase[i]  = hdr->oidbase[i+1];
                hdr->offset[i] = hdr->offset[i+1];
        }
@@ -103,6 +103,10 @@ MOSinitHeader(MOStask task)
        hdr->top = 0;
        hdr->checksum.sumlng = 0;
        hdr->checksum2.sumlng = 0;
+       for(i=0; i < MOSAICINDEX; i++){
+               hdr->oidbase[i] = 0;
+               hdr->offset[i] = 0;
+       }
        for(i=0; i < 256; i++){
                hdr->dictfreq[i]=0;
                hdr->framefreq[i]=0;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to