Changeset: 04bfc2f94a9c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=04bfc2f94a9c
Modified Files:
monetdb5/modules/mosaic/mosaic_capped.c
monetdb5/modules/mosaic/mosaic_var.c
Branch: mosaic
Log Message:
Un-expand macro's.
diffs (83 lines):
diff --git a/monetdb5/modules/mosaic/mosaic_capped.c
b/monetdb5/modules/mosaic/mosaic_capped.c
--- a/monetdb5/modules/mosaic/mosaic_capped.c
+++ b/monetdb5/modules/mosaic/mosaic_capped.c
@@ -110,17 +110,7 @@ DictionaryClass(TPE, GlobalCappedInfo, G
DerivedDictionaryClass(bte)
DerivedDictionaryClass(sht)
-PresentInTempDictFuncDef(int)static inline BUN _findValue_int(int* dict, BUN
dict_count, int val) { int m, f= 0, l = dict_count; while( l-f > 0 ) { m = f +
(l-f)/2; if ( val < dict[m]) l=m-1; else f= m; if ( val > dict[m]) f=m+1; else
l= m; } return f;}static inline int _getValue_int(GlobalCappedInfo* info, BUN
key) { return GetValue(info, key, int);}static str estimateDict_int(BUN*
nr_compressed, BUN* delta_count, BUN limit, GlobalCappedInfo* info, int* val) {
size_t buffer_size = 256; int* dict = (int*) GetBase(info, int); BUN dict_cnt =
GetCount(info); int* delta = dict + dict_cnt; *delta_count = 0;
for((*nr_compressed) = 0; (*nr_compressed)< limit; (*nr_compressed)++, val++) {
BUN pos = _findValue_int(dict, dict_cnt, *val); if (pos == dict_cnt ||
_getValue_int(info, pos) != *val) { ; if (PresentInTempDict(info, *val, int)) {
BUN key = _findValue_int(delta, (*delta_count), *val); if (key < *delta_count
&& delta[key] == *val) { continue; } if (dict_cnt + *delta_count + 1 == GetCap
(info)) { if( !Extend(info, dict_cnt + *delta_count + (buffer_size <<=1)) )
throw(MAL, "mosaic.var", MAL_MALLOC_FAIL); dict = GetBase(info, int); delta =
dict + dict_cnt; } int w = *val; for( ; key< *delta_count; key++) { if
(delta[key] > w){ int v = delta[key]; delta[key] = w; w = v; } } delta[key] =
w; (*delta_count)++; } else break; } } GetDeltaCount(info) = (*delta_count);
BUN new_count = dict_cnt + GetDeltaCount(info); GetBitsExtended(info) =
calculateBits(new_count); return MAL_SUCCEED;}static void
_mergeDeltaIntoDictionary_int(GlobalCappedInfo* info) { int* delta = (int*)
GetBase(info, int) + GetCount(info); if (GetCount(info) == 0) { ++delta;
GetCount(info)++; GetDeltaCount(info)--; } BUN limit = GetDeltaCount(info); for
(BUN i = 0; i < limit; i++) { BUN key = _findValue_int(GetBase(info, int),
GetCount(info), delta[i]); if (key < GetCount(info) && GetValue(info, key, int)
== delta[i]) { continue; } int w = delta[i]; for( ; key< GetCount(info); key++)
{ if (GetValue(info, ke
y, int) > w){ int v =GetValue(info, key, int); GetValue(info, key, int)= w; w
= v; } } GetCount(info)++; GetValue(info, key, int)= w; } GetBits(info) =
GetBitsExtended(info);}
-static void _compress_dictionary_int(int* dict, BUN dict_size, BUN* i, int*
val, BUN limit, BitVector base, bte bits) {
- for((*i) = 0; (*i) < limit; (*i)++, val++) {
- BUN key = _findValue_int(dict, dict_size, *val);
- assert(key < dict_size);
- setBitVector(base, (*i), bits, (unsigned int) key);
- }
-}
-static void _decompress_dictionary_int(int* dict, bte bits, BitVector base,
BUN limit, int** dest) { for(BUN i = 0; i < limit; i++){ size_t key =
getBitVector(base,i,(int) bits); (*dest)[i] = dict[key]; } *dest += limit;}
-
-
+DerivedDictionaryClass(int)
DerivedDictionaryClass(oid)
DerivedDictionaryClass(lng)
DerivedDictionaryClass(flt)
diff --git a/monetdb5/modules/mosaic/mosaic_var.c
b/monetdb5/modules/mosaic/mosaic_var.c
--- a/monetdb5/modules/mosaic/mosaic_var.c
+++ b/monetdb5/modules/mosaic/mosaic_var.c
@@ -89,56 +89,7 @@ typedef struct _GlobalVarInfo {
DerivedDictionaryClass(bte)
DerivedDictionaryClass(sht)
-static inline BUN _findValue_int(int* dict, BUN dict_count, int val) { int m,
f= 0, l = dict_count; while( l-f > 0 ) { m = f + (l-f)/2; if ( val < dict[m])
l=m-1; else f= m; if ( val > dict[m]) f=m+1; else l= m; } return f;}
-static inline int _getValue_int(GlobalVarInfo* info, BUN key) { return
GetValue(info, key, int);}
-static str estimateDict_int(BUN* nr_compressed, BUN* delta_count, BUN limit,
GlobalVarInfo* info, int* val) {
- size_t buffer_size = 256;
- int* dict = (int*) GetBase(info, int);
- BUN dict_cnt = GetCount(info);
- int* delta = dict + dict_cnt;
- *delta_count = 0;
- for((*nr_compressed) = 0; (*nr_compressed)< limit; (*nr_compressed)++,
val++) {
- BUN pos = _findValue_int(dict, dict_cnt, *val);
- if (pos == dict_cnt || _getValue_int(info, pos) != *val) {
- if (InsertCondition(info, *val, int)) {
- BUN key = _findValue_int(delta,
(*delta_count), *val);
- if (key < *delta_count && delta[key] ==
*val) { continue; }
- if (dict_cnt + *delta_count + 1 ==
GetCap(info)) {
- if( !Extend(info, dict_cnt +
*delta_count + (buffer_size <<=1)) ) throw(MAL, "mosaic.var", MAL_MALLOC_FAIL);
- dict = GetBase(info, int);
- delta = dict + dict_cnt;
- }
- int w = *val;
- for( ; key< *delta_count; key++) {
- if (delta[key] > w){ int v =
delta[key]; delta[key] = w; w = v; }
- }
- delta[key] = w; (*delta_count)++;
- }
- else break;
- }
- }
- GetDeltaCount(info) = (*delta_count);
- BUN new_count = dict_cnt + GetDeltaCount(info);
- GetBitsExtended(info) = calculateBits(new_count);
- return MAL_SUCCEED;
-}
-static void _mergeDeltaIntoDictionary_int(GlobalVarInfo* info) { int* delta =
(int*) GetBase(info, int) + GetCount(info); if (GetCount(info) == 0) { ++delta;
GetCount(info)++; GetDeltaCount(info)--; } BUN limit = GetDeltaCount(info); for
(BUN i = 0; i < limit; i++) { BUN key = _findValue_int(GetBase(info, int),
GetCount(info), delta[i]); if (key < GetCount(info) && GetValue(info, key, int)
== delta[i]) { continue; } int w = delta[i]; for( ; key< GetCount(info); key++)
{ if (GetValue(info, key, int) > w){ int v =GetValue(info, key, int);
GetValue(info, key, int)= w; w = v; } } GetCount(info)++; GetValue(info, key,
int)= w; } GetBits(info) = GetBitsExtended(info);}
-static void
-_compress_dictionary_int(int* dict, BUN dict_size, BUN* i, int* val, BUN
limit, BitVector base, bte bits) {
- for((*i) = 0; (*i) < limit; (*i)++, val++) {
- BUN key = _findValue_int(dict, dict_size, *val);
- assert(key < dict_size);
- setBitVector(base, (*i), bits, (unsigned int) key);
-}}
-static void
-_decompress_dictionary_int(int* dict, bte bits, BitVector base, BUN limit,
int** dest) {
- for(BUN i = 0; i < limit; i++){
- size_t key = getBitVector(base,i,(int) bits);
- (*dest)[i] = dict[key];
- }
- *dest += limit;
-}
-
+DerivedDictionaryClass(int)
DerivedDictionaryClass(oid)
DerivedDictionaryClass(lng)
DerivedDictionaryClass(flt)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list