Changeset: c7fee5a5170a for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c7fee5a5170a
Modified Files:
monetdb5/modules/mosaic/mosaic_prefix.c
Branch: mosaic
Log Message:
Compilation issues
diffs (truncated from 449 to 300 lines):
diff --git a/monetdb5/modules/mosaic/mosaic_prefix.c
b/monetdb5/modules/mosaic/mosaic_prefix.c
--- a/monetdb5/modules/mosaic/mosaic_prefix.c
+++ b/monetdb5/modules/mosaic/mosaic_prefix.c
@@ -23,7 +23,8 @@
* Factor out the leading bits from a series of values.
* The prefix size is determined by the first two non-identical values.
* To use the bitvector, we limit the extracted tail to at most 32bits
- * Prefix (de-)compression does not require type knowledge
+ * The administration are 2 TPE values (mask,reference value)
+ * The size of the residu is stored in the reference value lower bits
*/
#include "monetdb_config.h"
@@ -90,28 +91,28 @@ MOSlayout_prefix(Client cntxt, MOStask t
{ unsigned char *dst = (unsigned char*)
MOScodevector(task);
unsigned char mask = *dst++;
unsigned char val = *dst++;
- bits = val & (~mask);
+ bits = (int)(val & (~mask));
}
break;
case 2:
{ unsigned short *dst = (unsigned short*)
MOScodevector(task);
unsigned short mask = *dst++;
unsigned short val = *dst++;
- bits = val & (~mask);
+ bits = (int)(val & (~mask));
}
break;
case 4:
{ unsigned int *dst = (unsigned int*)
MOScodevector(task);
unsigned int mask = *dst++;
unsigned int val = *dst++;
- bits = val & (~mask);
+ bits = (int)(val & (~mask));
}
break;
case 8:
{ ulng *dst = (ulng*) MOScodevector(task);
ulng mask = *dst++;
ulng val = *dst++;
- bits = val & (~mask);
+ bits = (int)(val & (~mask));
}
}
bytes = sizeof(int) * ((MOSgetCnt(task->blk) * bits)/32 +
(((MOSgetCnt(task->blk) * bits) %32) != 0));
@@ -124,7 +125,7 @@ MOSlayout_prefix(Client cntxt, MOStask t
void
MOSadvance_prefix(Client cntxt, MOStask task)
{
- int bits, bytes;
+ int bits = 0, bytes;
int size;
(void) cntxt;
@@ -138,7 +139,7 @@ MOSadvance_prefix(Client cntxt, MOStask
{ unsigned char *dst = (unsigned char*)
MOScodevector(task);
unsigned char mask = *dst++;
unsigned char val = *dst++;
- bits = val & (~mask);
+ bits = (int)(val & (~mask));
// be aware that we use longs as bit vectors
bytes = sizeof(int) * ((MOSgetCnt(task->blk) * bits)/32
+ (((MOSgetCnt(task->blk) * bits) %32) != 0));
task->blk = (MosaicBlk) (((char*) dst) +
wordaligned(bytes, int));
@@ -148,7 +149,7 @@ MOSadvance_prefix(Client cntxt, MOStask
{ unsigned short *dst = (unsigned short*)
MOScodevector(task);
unsigned short mask = *dst++;
unsigned short val = *dst++;
- bits = val & (~mask);
+ bits = (int)(val & (~mask));
bytes = sizeof(int) * ((MOSgetCnt(task->blk) * bits)/32
+ (((MOSgetCnt(task->blk) * bits) %32) != 0));
task->blk = (MosaicBlk) (((char*) dst) +
wordaligned(bytes, int));
}
@@ -157,7 +158,7 @@ MOSadvance_prefix(Client cntxt, MOStask
{ unsigned int *dst = (unsigned int*)
MOScodevector(task);
unsigned int mask = *dst++;
unsigned int val = *dst++;
- bits = val & (~mask);
+ bits = (int)(val & (~mask));
bytes = sizeof(int) * ((MOSgetCnt(task->blk) * bits)/32
+ (((MOSgetCnt(task->blk) * bits) %32) != 0));
task->blk = (MosaicBlk) (((char*) dst) +
wordaligned(bytes, int));
}
@@ -166,7 +167,7 @@ MOSadvance_prefix(Client cntxt, MOStask
{ ulng *dst = (ulng*) MOScodevector(task);
ulng mask = *dst++;
ulng val = *dst++;
- bits = val & (~mask);
+ bits = (int)(val & (~mask));
bytes = sizeof(int) * ((MOSgetCnt(task->blk) * bits)/32
+ (((MOSgetCnt(task->blk) * bits) %32) != 0));
task->blk = (MosaicBlk) (((char*) dst) +
wordaligned(bytes, int));
}
@@ -376,7 +377,7 @@ MOScompress_prefix(Client cntxt, MOStask
{
BUN limit, i, j =0 ;
int size;
- int prefixbits,residu;
+ int prefixbits,bits;
BitVector base;
MosaicHdr hdr = task->hdr;
MosaicBlk blk = task->blk;
@@ -401,11 +402,11 @@ MOScompress_prefix(Client cntxt, MOStask
}
w = v+1;
Prefix(prefixbits, mask, val, val2, 8);
- residu = 8-prefixbits;
+ bits = 8-prefixbits;
*dst++ = mask;
val = *v & mask; //reference value
*dst = val;
- *dst = *dst | residu; // bits outside mask
+ *dst = *dst | bits; // bits outside mask
dst++;
base = (BitVector) dst; // start of bit vector
@@ -413,7 +414,7 @@ MOScompress_prefix(Client cntxt, MOStask
for(j=0, w = v, i = 0; i < limit; w++, i++, j++){
if ( val != (*w & mask) )
break;
- compress(base, j, residu, (int)( *w &
(~mask))); // residu
+ compress(base, j, bits, (int)( *w & (~mask)));
// bits
hdr->checksum.sumbte += val;
}
MOSsetCnt(blk,j);
@@ -431,11 +432,11 @@ MOScompress_prefix(Client cntxt, MOStask
}
w = v+1;
Prefix(prefixbits, mask, val, val2, 16);
- residu = 16-prefixbits;
+ bits = 16-prefixbits;
*dst++ = mask;
val = *v & mask; //reference value
*dst = val;
- *dst = *dst | residu; // bits outside mask
+ *dst = *dst | bits; // bits outside mask
dst++;
base = (BitVector) dst; // start of bit vector
@@ -443,7 +444,7 @@ MOScompress_prefix(Client cntxt, MOStask
for(j=0, w = v, i = 0; i < limit; w++, i++, j++){
if ( val != (*w & mask) )
break;
- compress(base,j,residu, (int)( *w & (~mask)));
// residu
+ compress(base,j,bits, (int)( *w & (~mask)));
hdr->checksum.sumsht += val;
}
MOSsetCnt(blk,j);
@@ -461,20 +462,20 @@ MOScompress_prefix(Client cntxt, MOStask
}
w = v+1;
Prefix(prefixbits, mask, val, val2, 32);
- residu = 32-prefixbits;
+ bits = 32-prefixbits;
*dst++ = mask;
val = *v & mask; //reference value
*dst = val;
- *dst = *dst | residu; // bits outside mask
+ *dst = *dst | bits; // bits outside mask
dst++;
base = (BitVector) dst; // start of bit vector
- //mnstr_printf(cntxt->fdout,"compress %o %o val %d bits
%d, %d mask %o\n",*v,*w,val,bits, residu,mask);
+ //mnstr_printf(cntxt->fdout,"compress %o %o val %d bits
%d, %d mask %o\n",*v,*w,val,bits, bits,mask);
if( i < limit)
for(j=0, w = v, i = 0; i < limit; w++, i++, j++){
if ( val != (*w & mask) )
break;
- compress(base,j,residu, (int) (*w & (~mask)));
// residu
+ compress(base,j,bits, (int) (*w & (~mask))); //
bits
hdr->checksum.sumint += val;
}
MOSsetCnt(blk,j);
@@ -492,20 +493,20 @@ MOScompress_prefix(Client cntxt, MOStask
}
w = v+1;
Prefix(prefixbits, mask, val, val2, 32);
- residu = 64-prefixbits;
+ bits = 64-prefixbits;
*dst++ = mask;
val = *v & mask; //reference value
*dst = val;
- *dst = *dst | residu; // bits outside mask
+ *dst = *dst | bits; // bits outside mask
dst++;
base = (BitVector) dst; // start of bit vector
- //mnstr_printf(cntxt->fdout,"compress %o %o val %d bits
%d, %d mask %o\n",*v,*w,val,bits, residu,mask);
+ //mnstr_printf(cntxt->fdout,"compress %o %o val %d bits
%d, %d mask %o\n",*v,*w,val,bits, bits,mask);
if( i < limit)
for(j=0, w = v, i = 0; i < limit; w++, i++,j++){
if ( val != (*w & mask) )
break;
- compress(base,j,residu, (int)(*w & (~mask)));
// residu
+ compress(base,j,bits, (int)(*w & (~mask))); //
bits
hdr->checksum.sumlng += val;
}
MOSsetCnt(blk,j);
@@ -524,7 +525,7 @@ MOSdecompress_prefix(Client cntxt, MOSta
MosaicHdr hdr = task->hdr;
MosaicBlk blk = ((MosaicBlk) task->blk);
BUN i,lim;
- int size;
+ int bits,size;
BitVector base;
(void) cntxt;
@@ -537,14 +538,13 @@ MOSdecompress_prefix(Client cntxt, MOSta
{ unsigned char *dst = (unsigned char*)
MOScodevector(task);
unsigned char mask = *dst++, val = *dst++, v;
unsigned char *w = ((unsigned char*) task->src) +
task->start;
- unsigned char residu;
- residu = val & (~mask);
+ bits =(int) (val & (~mask));
val = val & mask;
base = (BitVector) dst;
- //mnstr_printf(cntxt->fdout,"decompress residu %d mask
%o val %d\n",residu,m,val);
+ //mnstr_printf(cntxt->fdout,"decompress bits %d mask %o
val %d\n",bits,m,val);
for(i = 0; i < lim; i++){
- v = decompress(base,i,residu);
+ v = decompress(base,i,bits);
hdr->checksum.sumsht += v;
*w++ = v;
}
@@ -554,14 +554,13 @@ MOSdecompress_prefix(Client cntxt, MOSta
{ unsigned short *dst = (unsigned short*) (((char*)
blk) + MosaicBlkSize);
unsigned short mask = *dst++, val = *dst++, v;
unsigned short *w = ((unsigned short*) task->src) +
task->start;
- unsigned short residu;
- residu = val & (~mask);
+ bits = (int) (val & (~mask));
val = val & mask;
base = (BitVector) dst;
- //mnstr_printf(cntxt->fdout,"decompress residu %d mask
%o val %d\n",residu,m,val);
+ //mnstr_printf(cntxt->fdout,"decompress bits %d mask %o
val %d\n",bits,m,val);
for(i = 0; i < lim; i++){
- v =decompress(base,i,residu);
+ v =decompress(base,i,bits);
hdr->checksum.sumsht += v;
*w++ = v;
}
@@ -571,14 +570,13 @@ MOSdecompress_prefix(Client cntxt, MOSta
{ unsigned int *dst = (unsigned int*)
MOScodevector(task);
unsigned int mask = *dst++, val = *dst++, v;
unsigned int *w = ((unsigned int*) task->src) +
task->start;
- unsigned int residu;
- residu = val & (~mask);
+ bits = (int)(val & (~mask));
val = val & mask;
base = (BitVector) dst;
- //mnstr_printf(cntxt->fdout,"decompress residu %d mask
%o val %d\n",residu,m,val);
+ //mnstr_printf(cntxt->fdout,"decompress bits %d mask %o
val %d\n",bits,m,val);
for(i = 0; i < lim; i++){
- v = decompress(base,i,residu);
+ v = decompress(base,i,bits);
hdr->checksum.sumint += v;
*w++ = v;
}
@@ -588,14 +586,13 @@ MOSdecompress_prefix(Client cntxt, MOSta
{ ulng *dst = (ulng*) MOScodevector(task);
ulng mask = *dst++, val = *dst++, v;
ulng *w = ((ulng*) task->src) + task->start;
- ulng residu;
- residu = val & (~mask);
+ bits = (int)(val & (~mask));
val = val & mask;
base = (BitVector) dst;
- //mnstr_printf(cntxt->fdout,"decompress residu %d mask
%o val %d\n",residu,m,val);
+ //mnstr_printf(cntxt->fdout,"decompress bits %d mask %o
val %d\n",bits,m,val);
for(i = 0; i < lim; i++){
- v= decompress(base,i,residu);
+ v= decompress(base,i,bits);
hdr->checksum.sumlng += v;
*w++ = v;
}
@@ -609,9 +606,9 @@ MOSdecompress_prefix(Client cntxt, MOSta
#define subselect_prefix(TPE, TPE2) \
{ TPE2 *dst = (TPE2*) MOScodevector(task);\
TPE2 mask = *dst++, val = *dst++,v;\
- TPE2 residu;\
+ int bits;\
TPE value;\
- residu = val & (~mask);\
+ bits = (int) (val & (~mask));\
val = val & mask;\
base = (BitVector) dst;\
if( !*anti){\
@@ -624,7 +621,7 @@ MOSdecompress_prefix(Client cntxt, MOSta
if( *(TPE*) low == TPE##_nil ){\
for( ; first < last; first++,i++){\
MOSskipit();\
- v = decompress(base,i,residu);\
+ v = decompress(base,i,bits);\
value = (TPE) ((TPE2)val |(TPE2) v);\
cmp = ((*hi && value <= * (TPE*)hgh ) ||
(!*hi && value < *(TPE*)hgh ));\
if (cmp )\
@@ -634,7 +631,7 @@ MOSdecompress_prefix(Client cntxt, MOSta
if( *(TPE*) hgh == TPE##_nil ){\
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list