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

Reply via email to