Changeset: 7b8c6f490ac1 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7b8c6f490ac1
Modified Files:
monetdb5/modules/mosaic/mosaic_dict.c
monetdb5/modules/mosaic/mosaic_dict256.c
Branch: mosaic
Log Message:
Fix two dictionary build-up bugs.
diffs (79 lines):
diff --git a/monetdb5/modules/mosaic/mosaic_dict.c
b/monetdb5/modules/mosaic/mosaic_dict.c
--- a/monetdb5/modules/mosaic/mosaic_dict.c
+++ b/monetdb5/modules/mosaic/mosaic_dict.c
@@ -170,7 +170,7 @@ MOSestimate_SIGNATURE(dict, TPE)\
BUN delta_count;\
BUN nr_compressed;\
\
- BUN old_keys_size = (current->nr_dict_encoded_elements *
GET_BITS_EXTENDED(info)) / CHAR_BIT;\
+ BUN old_keys_size = (current->nr_dict_encoded_elements *
GET_BITS(info)) / CHAR_BIT;\
BUN old_dict_size = GET_COUNT(info) * sizeof(TPE);\
BUN old_headers_size = current->nr_dict_encoded_blocks * 2 *
sizeof(MOSBlockHeaderTpe(dict, TPE));\
BUN old_bytes = old_keys_size + old_dict_size +
old_headers_size;\
diff --git a/monetdb5/modules/mosaic/mosaic_dict256.c
b/monetdb5/modules/mosaic/mosaic_dict256.c
--- a/monetdb5/modules/mosaic/mosaic_dict256.c
+++ b/monetdb5/modules/mosaic/mosaic_dict256.c
@@ -262,7 +262,7 @@ MOSestimate_SIGNATURE(dict256, TPE)\
BUN delta_count;\
BUN nr_compressed;\
\
- BUN old_keys_size = (current->nr_dict256_encoded_elements
* GET_BITS_EXTENDED(info)) / CHAR_BIT;\
+ BUN old_keys_size = (current->nr_dict256_encoded_elements
* GET_BITS(info)) / CHAR_BIT;\
BUN old_dict_size = GET_COUNT(info) * sizeof(TPE);\
BUN old_headers_size = current->nr_dict256_encoded_blocks * 2 *
sizeof(MOSBlockHeaderTpe(dict256, TPE));\
BUN old_bytes = old_keys_size + old_dict_size +
old_headers_size;\
@@ -291,53 +291,7 @@ MOSestimate_SIGNATURE(dict256, TPE)\
MOSestimate_DEF(bte)
MOSestimate_DEF(sht)
-MOSestimate_SIGNATURE(dict256, int)
-{
- (void) previous;
- GlobalCappedInfo* info = task->dict256_info;
- if (task->start < *(current)->dict256_limit) {
- /*Dictionary estimation is expensive. So only allow it on
disjoint regions.*/
- current->is_applicable = false;
- return MAL_SUCCEED;
- }
- BUN limit = (BUN) (task->stop - task->start > MOSAICMAXCNT?
MOSAICMAXCNT: task->stop - task->start);
-
- if (*current->max_compression_length != 0 &&
*current->max_compression_length < limit) {
- limit = *current->max_compression_length;
- }
-
- *(current)->dict256_limit = task->start + limit;
-
- int* val = getSrc(int, task);
- BUN delta_count;
- BUN nr_compressed;
-
- BUN old_keys_size = (current->nr_dict256_encoded_elements
* GET_BITS_EXTENDED(info)) / CHAR_BIT;
- BUN old_dict_size = GET_COUNT(info) * sizeof(int);
- BUN old_headers_size = current->nr_dict256_encoded_blocks * 2 *
sizeof(MOSBlockHeaderTpe(dict256, int));
- BUN old_bytes = old_keys_size + old_dict_size +
old_headers_size;
-
- if (extend_delta_int(&nr_compressed, &delta_count, limit, info, val)) {
- throw(MAL, "mosaic.dict256", MAL_MALLOC_FAIL);
- }
-
- current->is_applicable = nr_compressed > 0;
- current->nr_dict256_encoded_elements += nr_compressed;
- current->nr_dict256_encoded_blocks++;
-
- BUN new_keys_size = (current->nr_dict256_encoded_elements
* GET_BITS_EXTENDED(info)) / CHAR_BIT;
- BUN new_dict_size = (delta_count + GET_COUNT(info)) *
sizeof(int);
- BUN new_headers_size = current->nr_dict256_encoded_blocks * 2 *
sizeof(MOSBlockHeaderTpe(dict256, int));
- BUN new_bytes = new_keys_size + new_dict_size +
new_headers_size;
-
- current->compression_strategy.tag = MOSAIC_DICT256;
- current->compression_strategy.cnt = (unsigned int) nr_compressed;
-
- current->uncompressed_size += (BUN) ( nr_compressed * sizeof(int));
- current->compressed_size += (BUN) (wordaligned(
MosaicBlkSize, BitVectorChunk) + new_bytes - old_bytes);
-
- return MAL_SUCCEED;
-}
+MOSestimate_DEF(int)
MOSestimate_DEF(lng)
MOSestimate_DEF(flt)
MOSestimate_DEF(dbl)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list