Changeset: 7fc6316c0e39 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7fc6316c0e39
Modified Files:
monetdb5/modules/mosaic/mosaic_prefix.c
Branch: mosaic
Log Message:
Compilation issue
diffs (120 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
@@ -80,6 +80,7 @@ MOSlayout_prefix(Client cntxt, MOStask t
lng cnt = MOSgetCnt(blk), input=0, output= 0;
int bits =0, bytes=0;
int size = ATOMsize(task->type);
+ char buf[32];
(void) cntxt;
if( ATOMstorage(task->type == TYPE_str))
@@ -91,7 +92,7 @@ MOSlayout_prefix(Client cntxt, MOStask t
case 1:
{ unsigned char *dst = (unsigned char*)
MOScodevector(task);
unsigned char mask = *dst++;
- unsigned char val = *dst++;
+ unsigned char val = *dst;
bits = (int)(val & (~mask));
bytes = wordaligned(MosaicBlkSize + 2 * sizeof(unsigned
char),int);
bytes += wordaligned(getBitVectorSize(cnt,bits) *
sizeof(int), int);
@@ -100,7 +101,7 @@ MOSlayout_prefix(Client cntxt, MOStask t
case 2:
{ unsigned short *dst = (unsigned short*)
MOScodevector(task);
unsigned short mask = *dst++;
- unsigned short val = *dst++;
+ unsigned short val = *dst;
bits = (int)(val & (~mask));
bytes = wordaligned(MosaicBlkSize + 2 * sizeof(unsigned
short),int);
bytes += wordaligned(getBitVectorSize(cnt,bits) *
sizeof(int), int);
@@ -109,7 +110,7 @@ MOSlayout_prefix(Client cntxt, MOStask t
case 4:
{ unsigned int *dst = (unsigned int*)
MOScodevector(task);
unsigned int mask = *dst++;
- unsigned int val = *dst++;
+ unsigned int val = *dst;
bits = (int)(val & (~mask));
bytes = wordaligned(MosaicBlkSize + 2 * sizeof(unsigned
int),int);
bytes += wordaligned(getBitVectorSize(cnt,bits) *
sizeof(int), int);
@@ -118,7 +119,7 @@ MOSlayout_prefix(Client cntxt, MOStask t
case 8:
{ ulng *dst = (ulng*) MOScodevector(task);
ulng mask = *dst++;
- ulng val = *dst++;
+ ulng val = *dst;
bits = (int)(val & (~mask));
bytes = wordaligned(MosaicBlkSize + 2 *
sizeof(ulng),int);
bytes += wordaligned(getBitVectorSize(cnt,bits) *
sizeof(int), int);
@@ -127,7 +128,8 @@ MOSlayout_prefix(Client cntxt, MOStask t
output = wordaligned(bytes, int);
BUNappend(binput, &input, FALSE);
BUNappend(boutput, &output, FALSE);
- BUNappend(bproperties, "", FALSE);
+ snprintf(buf,32,"%d bits",bits);
+ BUNappend(bproperties, buf, FALSE);
}
void
@@ -205,6 +207,8 @@ findPrefixBit(Client cntxt, unsigned cha
{
int i, step = 8, width = 0;
unsigned char prefix, mask;
+ *bits = 0;
+ *prefixmask = 0;
do{
step /=2;
mask = 1 ;
@@ -236,6 +240,8 @@ findPrefixSht(Client cntxt, unsigned sho
{
int i, step = 16, width = 0;
unsigned short prefix, mask;
+ *bits = 0;
+ *prefixmask = 0;
#ifdef _DEBUG_PREFIX_
mnstr_printf(cntxt->fdout,"#findprefix start %u %d \n", *v, *bits);
#endif
@@ -270,6 +276,8 @@ findPrefixInt(Client cntxt, unsigned int
{
int i, step = 32, width = 0;
unsigned int prefix, mask;
+ *bits = 0;
+ *prefixmask = 0;
do{
step /=2;
mask = 1 ;
@@ -301,6 +309,8 @@ findPrefixLng(Client cntxt, ulng *v, int
{
int i, step = 64, width = 0;
ulng prefix, mask;
+ *bits = 0;
+ *prefixmask = 0;
do{
step /=2;
mask = 1 ;
@@ -514,8 +524,8 @@ void
MOScompress_prefix(Client cntxt, MOStask task)
{
BUN limit, j =0 ;
- int prefixbits, bits;
- lng size;
+ int prefixbits,bits;
+ lng size;
BitVector base;
MosaicHdr hdr = task->hdr;
MosaicBlk blk = task->blk;
@@ -619,13 +629,14 @@ MOScompress_prefix(Client cntxt, MOStask
case 8:
{ ulng *v = ((ulng*) task->src) + task->start, *wlimit =
v + limit, val1, mask;
ulng *dst = (ulng*) MOScodevector(task);
+
findPrefixLng(cntxt, v, LOOKAHEAD, &prefixbits,&mask);
bits = 64-prefixbits;
base = (BitVector)(((char*)dst) + wordaligned(2 *
sizeof(ulng),int));
if (bits <= 32){
*dst++ = mask;
val1 = *v & mask; //reference value
- *dst++ = val1 | bits; // bits outside mask
+ *dst++ = val1 | (ulng) bits; // bits outside
mask
#ifdef _DEBUG_PREFIX_
mnstr_printf(cntxt->fdout,"#compress[4] bits %d mask
"LLFMT" address "LLFMT"\n",bits,mask,(lng) MOScodevector(task));
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list