Changeset: 5b20ef473b94 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5b20ef473b94
Modified Files:
clients/Tests/exports.stable.out
monetdb5/modules/mosaic/TODO_MOSAIC.txt
monetdb5/modules/mosaic/mosaic_capped.c
monetdb5/modules/mosaic/mosaic_capped.h
monetdb5/modules/mosaic/mosaic_delta.c
monetdb5/modules/mosaic/mosaic_delta.h
monetdb5/modules/mosaic/mosaic_frame.c
monetdb5/modules/mosaic/mosaic_frame.h
monetdb5/modules/mosaic/mosaic_join.h
monetdb5/modules/mosaic/mosaic_linear.c
monetdb5/modules/mosaic/mosaic_linear.h
monetdb5/modules/mosaic/mosaic_prefix.c
monetdb5/modules/mosaic/mosaic_prefix.h
monetdb5/modules/mosaic/mosaic_projection.h
monetdb5/modules/mosaic/mosaic_raw.c
monetdb5/modules/mosaic/mosaic_raw.h
monetdb5/modules/mosaic/mosaic_runlength.c
monetdb5/modules/mosaic/mosaic_runlength.h
monetdb5/modules/mosaic/mosaic_select.h
monetdb5/modules/mosaic/mosaic_var.c
monetdb5/modules/mosaic/mosaic_var.h
Branch: mosaic
Log Message:
Factored out MOSadvance_* functions.
diffs (truncated from 397 to 300 lines):
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -1512,14 +1512,6 @@ str MKEYhash(Client cntxt, MalBlkPtr mb,
str MKEYrotate(lng *ret, const lng *v, const int *nbits);
str MKEYrotate_xor_hash(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
void MOSAnalysis(BAT *b, BAT *btech, BAT *output, BAT *factor, BAT *compress,
BAT *decompress, str compressions);
-void MOSadvance_capped(MOStask task);
-void MOSadvance_delta(MOStask task);
-void MOSadvance_frame(MOStask task);
-void MOSadvance_linear(MOStask task);
-void MOSadvance_prefix(MOStask task);
-void MOSadvance_raw(MOStask task);
-void MOSadvance_runlength(MOStask task);
-void MOSadvance_var(MOStask task);
void MOSblk(MosaicBlk blk);
str MOScompress(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
str MOScompressInternal(BAT *bsrc, const char *compressions);
diff --git a/monetdb5/modules/mosaic/TODO_MOSAIC.txt
b/monetdb5/modules/mosaic/TODO_MOSAIC.txt
--- a/monetdb5/modules/mosaic/TODO_MOSAIC.txt
+++ b/monetdb5/modules/mosaic/TODO_MOSAIC.txt
@@ -1,5 +1,4 @@
####technical depth####
-Split the MOSadvance-like functions to type specific variant.
Create test for swapped join.
Add lots of tests with candidate lists for all
Add test for float/double
@@ -25,7 +24,5 @@ Get rid of (most of) MOStask and/or don'
Make sure the parameters.bits fields are always char.
Use GDK naming conventions, e.g. o for stuff coming out if canditer_next.
Make block headers specific by having type parametrized blockheader struct's.
-It is a bit cleaner if MOSadvance call's are done outside of select functions.
create a common header/source file for mosaic for common tasks e.g. to house a
generic IS_NIL macro, IPtpe, etc.
-Improve the administration of the various hard coded compression techniques,
e.g. MOSskipit skip (2*)
Update copyright in 2020.
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
@@ -123,23 +123,6 @@ MOSadvance_DEF(hge)
#endif
void
-MOSadvance_capped(MOStask task)
-{
- // TODO: Not strictly necessary to split on type here since the logic
remains the same.
- switch(ATOMbasetype(task->type)){
- case TYPE_bte: MOSadvance_capped_bte(task); break;
- case TYPE_sht: MOSadvance_capped_sht(task); break;
- case TYPE_int: MOSadvance_capped_int(task); break;
- case TYPE_lng: MOSadvance_capped_lng(task); break;
- case TYPE_flt: MOSadvance_capped_flt(task); break;
- case TYPE_dbl: MOSadvance_capped_dbl(task); break;
-#ifdef HAVE_HGE
- case TYPE_hge: MOSadvance_capped_hge(task); break;
-#endif
- }
-}
-
-void
MOSlayout_capped_hdr(MOStask task, BAT *btech, BAT *bcount, BAT *binput, BAT
*boutput, BAT *bproperties)
{
lng zero=0;
diff --git a/monetdb5/modules/mosaic/mosaic_capped.h
b/monetdb5/modules/mosaic/mosaic_capped.h
--- a/monetdb5/modules/mosaic/mosaic_capped.h
+++ b/monetdb5/modules/mosaic/mosaic_capped.h
@@ -26,7 +26,6 @@ bool MOStypes_capped(BAT* b);
mal_export str MOScreateCappedInfo(MOStask task);
mal_export void MOSlayout_capped(MOStask task, BAT *btech, BAT *bcount, BAT
*binput, BAT *boutput, BAT *bproperties);
mal_export void MOSlayout_capped_hdr(MOStask task, BAT *btech, BAT *bcount,
BAT *binput, BAT *boutput, BAT *bproperties);
-mal_export void MOSadvance_capped(MOStask task);
mal_export str MOSprepareEstimate_capped(MOStask task);
mal_export str finalizeDictionary_capped(MOStask task);
diff --git a/monetdb5/modules/mosaic/mosaic_delta.c
b/monetdb5/modules/mosaic/mosaic_delta.c
--- a/monetdb5/modules/mosaic/mosaic_delta.c
+++ b/monetdb5/modules/mosaic/mosaic_delta.c
@@ -62,21 +62,6 @@ MOSadvance_DEF(hge)
#endif
void
-MOSadvance_delta(MOStask task)
-{
- // TODO: Not strictly necessary to split on type here since the logic
remains the same.
- switch(ATOMbasetype(task->type)){
- case TYPE_bte: MOSadvance_delta_bte(task); break;
- case TYPE_sht: MOSadvance_delta_sht(task); break;
- case TYPE_int: MOSadvance_delta_int(task); break;
- case TYPE_lng: MOSadvance_delta_lng(task); break;
-#ifdef HAVE_HGE
- case TYPE_hge: MOSadvance_delta_hge(task); break;
-#endif
- }
-}
-
-void
MOSlayout_delta(MOStask task, BAT *btech, BAT *bcount, BAT *binput, BAT
*boutput, BAT *bproperties)
{
MosaicBlk blk = task->blk;
diff --git a/monetdb5/modules/mosaic/mosaic_delta.h
b/monetdb5/modules/mosaic/mosaic_delta.h
--- a/monetdb5/modules/mosaic/mosaic_delta.h
+++ b/monetdb5/modules/mosaic/mosaic_delta.h
@@ -20,7 +20,6 @@
bool MOStypes_delta(BAT* b);
mal_export void MOSlayout_delta(MOStask task, BAT *btech, BAT *bcount, BAT
*binput, BAT *boutput, BAT *bproperties);
-mal_export void MOSadvance_delta(MOStask task);
ALGEBRA_INTERFACES_INTEGERS_ONLY(delta);
#define DO_OPERATION_ON_delta(OPERATION, TPE, ...)
DO_OPERATION_ON_INTEGERS_ONLY(OPERATION, delta, TPE, __VA_ARGS__)
diff --git a/monetdb5/modules/mosaic/mosaic_frame.c
b/monetdb5/modules/mosaic/mosaic_frame.c
--- a/monetdb5/modules/mosaic/mosaic_frame.c
+++ b/monetdb5/modules/mosaic/mosaic_frame.c
@@ -71,21 +71,6 @@ MOSadvance_DEF(hge)
#endif
void
-MOSadvance_frame(MOStask task)
-{
- // TODO: Not strictly necessary to split on type here since the logic
remains the same.
- switch(ATOMbasetype(task->type)){
- case TYPE_bte: MOSadvance_frame_bte(task); break;
- case TYPE_sht: MOSadvance_frame_sht(task); break;
- case TYPE_int: MOSadvance_frame_int(task); break;
- case TYPE_lng: MOSadvance_frame_lng(task); break;
-#ifdef HAVE_HGE
- case TYPE_hge: MOSadvance_frame_hge(task); break;
-#endif
- }
-}
-
-void
MOSlayout_frame(MOStask task, BAT *btech, BAT *bcount, BAT *binput, BAT
*boutput, BAT *bproperties)
{
(void) boutput;
diff --git a/monetdb5/modules/mosaic/mosaic_frame.h
b/monetdb5/modules/mosaic/mosaic_frame.h
--- a/monetdb5/modules/mosaic/mosaic_frame.h
+++ b/monetdb5/modules/mosaic/mosaic_frame.h
@@ -22,7 +22,6 @@ bool MOStypes_frame(BAT* b);
mal_export void MOScreateframeDictionary(MOStask task);
mal_export void MOSlayout_frame_hdr(MOStask task, BAT *btech, BAT *bcount, BAT
*binput, BAT *boutput, BAT *bproperties);
mal_export void MOSlayout_frame(MOStask task, BAT *btech, BAT *bcount, BAT
*binput, BAT *boutput, BAT *bproperties);
-mal_export void MOSadvance_frame(MOStask task);
ALGEBRA_INTERFACES_INTEGERS_ONLY(frame);
#define DO_OPERATION_ON_frame(OPERATION, TPE, ...)
DO_OPERATION_ON_INTEGERS_ONLY(OPERATION, frame, TPE, __VA_ARGS__)
diff --git a/monetdb5/modules/mosaic/mosaic_join.h
b/monetdb5/modules/mosaic/mosaic_join.h
--- a/monetdb5/modules/mosaic/mosaic_join.h
+++ b/monetdb5/modules/mosaic/mosaic_join.h
@@ -87,14 +87,14 @@ MOSjoin_COUI_SIGNATURE(NAME, TPE)\
(void) canditer_prev(lci);\
}\
\
- MOSadvance_##NAME##_##TPE(task);\
return MAL_SUCCEED;\
}
#define do_join_COUI(NAME, TPE, DUMMY_ARGUMENT)\
{\
-str msg = MOSjoin_COUI_##NAME##_##TPE(r1p, r2p, task, r, rci, nil_matches);\
+ str msg = MOSjoin_COUI_##NAME##_##TPE(r1p, r2p, task, r, rci,
nil_matches);\
if (msg != MAL_SUCCEED) return msg;\
+ MOSadvance_##NAME##_##TPE(task);\
}
/* Nested loop join with the left (C)ompressed side in the (O)uter loop
diff --git a/monetdb5/modules/mosaic/mosaic_linear.c
b/monetdb5/modules/mosaic/mosaic_linear.c
--- a/monetdb5/modules/mosaic/mosaic_linear.c
+++ b/monetdb5/modules/mosaic/mosaic_linear.c
@@ -76,21 +76,6 @@ MOSadvance_DEF(lng)
MOSadvance_DEF(hge)
#endif
-void
-MOSadvance_linear(MOStask task)
-{
- // TODO: Not strictly necessary to split on type here since the logic
remains the same.
- switch(ATOMbasetype(task->type)){
- case TYPE_bte: MOSadvance_linear_bte(task); break;
- case TYPE_sht: MOSadvance_linear_sht(task); break;
- case TYPE_int: MOSadvance_linear_int(task); break;
- case TYPE_lng: MOSadvance_linear_lng(task); break;
-#ifdef HAVE_HGE
- case TYPE_hge: MOSadvance_linear_hge(task); break;
-#endif
- }
-}
-
#define MOSestimate_DEF(TPE) \
MOSestimate_SIGNATURE(linear, TPE)\
{\
diff --git a/monetdb5/modules/mosaic/mosaic_linear.h
b/monetdb5/modules/mosaic/mosaic_linear.h
--- a/monetdb5/modules/mosaic/mosaic_linear.h
+++ b/monetdb5/modules/mosaic/mosaic_linear.h
@@ -20,7 +20,6 @@
bool MOStypes_linear(BAT* b);
mal_export void MOSlayout_linear(MOStask task, BAT *btech, BAT *bcount, BAT
*binput, BAT *boutput, BAT *bproperties);
-mal_export void MOSadvance_linear(MOStask task);
ALGEBRA_INTERFACES_INTEGERS_ONLY(linear);
#define DO_OPERATION_ON_linear(OPERATION, TPE, ...)
DO_OPERATION_ON_INTEGERS_ONLY(OPERATION, linear, TPE, __VA_ARGS__)
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
@@ -123,21 +123,6 @@ MOSadvance_DEF(lng)
MOSadvance_DEF(hge)
#endif
-void
-MOSadvance_prefix(MOStask task)
-{
- // TODO: Not strictly necessary to split on type here since the logic
remains the same.
- switch(ATOMbasetype(task->type)){
- case TYPE_bte: MOSadvance_prefix_bte(task); break;
- case TYPE_sht: MOSadvance_prefix_sht(task); break;
- case TYPE_int: MOSadvance_prefix_int(task); break;
- case TYPE_lng: MOSadvance_prefix_lng(task); break;
-#ifdef HAVE_HGE
- case TYPE_hge: MOSadvance_prefix_hge(task); break;
-#endif
- }
-}
-
#define OverShift(TPE) ((sizeof(IPTpe(TPE)) - sizeof(PrefixTpe(TPE))) *
CHAR_BIT)
#define getSuffixMask(SUFFIX_BITS, TPE) ((PrefixTpe(TPE)) (~(~((IPTpe(TPE))
(0)) << (SUFFIX_BITS))))
#define getPrefixMask(PREFIX_BITS, TPE) ((PrefixTpe(TPE)) ( (~(~((IPTpe(TPE))
(0)) >> (PREFIX_BITS))) >> OverShift(TPE)))
diff --git a/monetdb5/modules/mosaic/mosaic_prefix.h
b/monetdb5/modules/mosaic/mosaic_prefix.h
--- a/monetdb5/modules/mosaic/mosaic_prefix.h
+++ b/monetdb5/modules/mosaic/mosaic_prefix.h
@@ -22,7 +22,6 @@
bool MOStypes_prefix(BAT* b);
mal_export void MOSlayout_prefix(MOStask task, BAT *btech, BAT *bcount, BAT
*binput, BAT *boutput, BAT *bproperties);
-mal_export void MOSadvance_prefix(MOStask task);
ALGEBRA_INTERFACES_INTEGERS_ONLY(prefix);
#define DO_OPERATION_ON_prefix(OPERATION, TPE, ...)
DO_OPERATION_ON_INTEGERS_ONLY(OPERATION, prefix, TPE, __VA_ARGS__)
diff --git a/monetdb5/modules/mosaic/mosaic_projection.h
b/monetdb5/modules/mosaic/mosaic_projection.h
--- a/monetdb5/modules/mosaic/mosaic_projection.h
+++ b/monetdb5/modules/mosaic/mosaic_projection.h
@@ -42,11 +42,14 @@ MOSprojection_SIGNATURE(NAME, TPE)\
(void) canditer_prev(task->ci);\
}\
\
- MOSadvance_##NAME##_##TPE(task);\
return MAL_SUCCEED;\
}
-#define do_projection(NAME, TPE, DUMMY_ARGUMENT)
MOSprojection_##NAME##_##TPE(task)
+#define do_projection(NAME, TPE, DUMMY_ARGUMENT)\
+{\
+ MOSprojection_##NAME##_##TPE(task);\
+ MOSadvance_##NAME##_##TPE(task);\
+}
#define MOSprojection_generic_DEF(TPE) \
static str MOSprojection_##TPE(MOStask task)\
diff --git a/monetdb5/modules/mosaic/mosaic_raw.c
b/monetdb5/modules/mosaic/mosaic_raw.c
--- a/monetdb5/modules/mosaic/mosaic_raw.c
+++ b/monetdb5/modules/mosaic/mosaic_raw.c
@@ -82,22 +82,6 @@ MOSadvance_DEF(dbl)
MOSadvance_DEF(hge)
#endif
-void
-MOSadvance_raw(MOStask task)
-{
- switch(ATOMbasetype(task->type)){
- case TYPE_bte: MOSadvance_raw_bte(task); break;
- case TYPE_sht: MOSadvance_raw_sht(task); break;
- case TYPE_int: MOSadvance_raw_int(task); break;
- case TYPE_lng: MOSadvance_raw_lng(task); break;
- case TYPE_flt: MOSadvance_raw_flt(task); break;
- case TYPE_dbl: MOSadvance_raw_dbl(task); break;
-#ifdef HAVE_HGE
- case TYPE_hge: MOSadvance_raw_hge(task); break;
-#endif
- }
-}
-
#define MOSestimate_DEF(TPE) \
MOSestimate_SIGNATURE(raw, TPE)\
{\
diff --git a/monetdb5/modules/mosaic/mosaic_raw.h
b/monetdb5/modules/mosaic/mosaic_raw.h
--- a/monetdb5/modules/mosaic/mosaic_raw.h
+++ b/monetdb5/modules/mosaic/mosaic_raw.h
@@ -20,7 +20,6 @@
bool MOStypes_raw(BAT* b);
mal_export void MOSlayout_raw(MOStask task, BAT *btech, BAT *bcount, BAT
*binput, BAT *boutput, BAT *bproperties);
-mal_export void MOSadvance_raw(MOStask task);
ALGEBRA_INTERFACES_ALL_TYPES(raw);
diff --git a/monetdb5/modules/mosaic/mosaic_runlength.c
b/monetdb5/modules/mosaic/mosaic_runlength.c
--- a/monetdb5/modules/mosaic/mosaic_runlength.c
+++ b/monetdb5/modules/mosaic/mosaic_runlength.c
@@ -81,22 +81,6 @@ MOSadvance_DEF(dbl)
MOSadvance_DEF(hge)
#endif
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list