Changeset: 3e86f530cf90 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3e86f530cf90
Modified Files:
monetdb5/modules/mosaic/mosaic_dictionary.c
Branch: mosaic
Log Message:
Fix dictionary construction
diffs (51 lines):
diff --git a/monetdb5/modules/mosaic/mosaic_dictionary.c
b/monetdb5/modules/mosaic/mosaic_dictionary.c
--- a/monetdb5/modules/mosaic/mosaic_dictionary.c
+++ b/monetdb5/modules/mosaic/mosaic_dictionary.c
@@ -229,9 +229,9 @@ MOSskip_dictionary(Client cntxt, MOStask
cw = cv;\
}\
dictsize++;\
- dict.val##TPE[j]= (TPE) *val;\
+ dict.val##TPE[j]= w;\
cnt[j] = 1;\
- } else cnt[j]++;\
+ } else if (dictsize < TMPDICT) cnt[j]++;\
} }
@@ -277,34 +277,7 @@ MOScreatedictionary(Client cntxt, MOStas
#endif
case TYPE_str:
switch(task->bsrc->twidth){
- case 1: //makeDict(bte); break;
-{ bte *val = ((bte*)task->src) + task->start,v,w;
- BUN limit = task->stop - task->start > MOSlimit()? MOSlimit():
task->stop - task->start;
- lng cw,cv;
- for(i = 0; i< limit; i++, val++){
- MOSfind(j,dict.valbte,*val,0,dictsize);
- if(j == dictsize && dictsize == 0 ){
- dict.valbte[j]= *val;
- cnt[j] = 1;
- dictsize++;
- } else
- if(dictsize < TMPDICT && dict.valbte[j] != *val){
- w= *val; cw= 1;
- for( ; j< dictsize; j++)
- if (dict.valbte[j] > w){
- v =dict.valbte[j];
- dict.valbte[j]= w;
- w = v;
- cv = cnt[j];
- cnt[j]= cw;
- cw = cv;
- }
- dictsize++;
- dict.valbte[j]= w;
- cnt[j] = cw;
- } else cnt[j]++;
-} }
- break;
+ case 1: makeDict(bte); break;
case 2: makeDict(sht); break;
case 4: makeDict(int); break;
case 8: makeDict(lng); break;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list