Changeset: 1981c548092e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1981c548092e
Modified Files:
        monetdb5/modules/mosaic/mosaic.c
        monetdb5/modules/mosaic/mosaic_utility.h
Branch: mosaic
Log Message:

Fix compiler issue's.


diffs (67 lines):

diff --git a/monetdb5/modules/mosaic/mosaic.c b/monetdb5/modules/mosaic/mosaic.c
--- a/monetdb5/modules/mosaic/mosaic.c
+++ b/monetdb5/modules/mosaic/mosaic.c
@@ -361,22 +361,22 @@ MOSestimate_AND_MOSoptimizerCost_DEF(hge
 
 static
 str MOSestimate(MOStask task, BAT* estimates, size_t* compressed_size) {
-       str msg;
        switch(ATOMbasetype(task->type)){
-       case TYPE_bte: msg = MOSestimate_bte(task, estimates, compressed_size); 
break;
-       case TYPE_sht: msg = MOSestimate_sht(task, estimates, compressed_size); 
break;
-       case TYPE_int: msg = MOSestimate_int(task, estimates, compressed_size); 
break;
-       case TYPE_lng: msg = MOSestimate_lng(task, estimates, compressed_size); 
break;
-       case TYPE_flt: msg = MOSestimate_flt(task, estimates, compressed_size); 
break;
-       case TYPE_dbl: msg = MOSestimate_dbl(task, estimates, compressed_size); 
break;
+       case TYPE_bte: return MOSestimate_bte(task, estimates, compressed_size);
+       case TYPE_sht: return MOSestimate_sht(task, estimates, compressed_size);
+       case TYPE_int: return MOSestimate_int(task, estimates, compressed_size);
+       case TYPE_lng: return MOSestimate_lng(task, estimates, compressed_size);
+       case TYPE_flt: return MOSestimate_flt(task, estimates, compressed_size);
+       case TYPE_dbl: return MOSestimate_dbl(task, estimates, compressed_size);
 #ifdef HAVE_HGE
-       case TYPE_hge: msg = MOSestimate_hge(task, estimates, compressed_size); 
break;
+       case TYPE_hge: return MOSestimate_hge(task, estimates, compressed_size);
 #endif
-       default: // Unknown block type. Should not happen.
+       default:
+               // Unknown block type. Should not happen.
                assert(0);
        }
 
-       return msg;
+       throw(MAL, "mosaic.estimate", TYPE_NOT_SUPPORTED);
 }
 
 static str
diff --git a/monetdb5/modules/mosaic/mosaic_utility.h 
b/monetdb5/modules/mosaic/mosaic_utility.h
--- a/monetdb5/modules/mosaic/mosaic_utility.h
+++ b/monetdb5/modules/mosaic/mosaic_utility.h
@@ -41,18 +41,21 @@ ALGEBRA_INTERFACES_INTEGERS_ONLY(NAME)\
 ALGEBRA_INTERFACE(NAME, flt);\
 ALGEBRA_INTERFACE(NAME, dbl);
 
-#define DO_OPERATION_ON_INTEGERS_ONLY_bte(OPERATION, NAME, ...) 
do_##OPERATION(NAME, bte, __VA_ARGS__)
-#define DO_OPERATION_ON_INTEGERS_ONLY_sht(OPERATION, NAME, ...) 
do_##OPERATION(NAME, sht, __VA_ARGS__)
-#define DO_OPERATION_ON_INTEGERS_ONLY_int(OPERATION, NAME, ...) 
do_##OPERATION(NAME, int, __VA_ARGS__)
-#define DO_OPERATION_ON_INTEGERS_ONLY_lng(OPERATION, NAME, ...) 
do_##OPERATION(NAME, lng, __VA_ARGS__)
+// This is just an ugly work around for Microsoft Visual Studio to get the 
expansion of __VA_ARGS__ right.
+#define EXPAND(X) X
+
+#define DO_OPERATION_ON_INTEGERS_ONLY_bte(OPERATION, NAME, ...) 
EXPAND(do_##OPERATION(NAME, bte, __VA_ARGS__))
+#define DO_OPERATION_ON_INTEGERS_ONLY_sht(OPERATION, NAME, ...) 
EXPAND(do_##OPERATION(NAME, sht, __VA_ARGS__))
+#define DO_OPERATION_ON_INTEGERS_ONLY_int(OPERATION, NAME, ...) 
EXPAND(do_##OPERATION(NAME, int, __VA_ARGS__))
+#define DO_OPERATION_ON_INTEGERS_ONLY_lng(OPERATION, NAME, ...) 
EXPAND(do_##OPERATION(NAME, lng, __VA_ARGS__))
 #define DO_OPERATION_ON_INTEGERS_ONLY_flt(OPERATION, NAME, ...) assert(0)
 #define DO_OPERATION_ON_INTEGERS_ONLY_dbl(OPERATION, NAME, ...) assert(0)
 #ifdef HAVE_HGE
-#define DO_OPERATION_ON_INTEGERS_ONLY_hge(OPERATION, NAME, ...) 
do_##OPERATION(NAME, hge, __VA_ARGS__)
+#define DO_OPERATION_ON_INTEGERS_ONLY_hge(OPERATION, NAME, ...) 
EXPAND(do_##OPERATION(NAME, hge, __VA_ARGS__))
 #endif
 
 #define DO_OPERATION_ON_INTEGERS_ONLY(OPERATION, NAME, TPE, ...)    
DO_OPERATION_ON_INTEGERS_ONLY_##TPE(OPERATION, NAME, __VA_ARGS__)
-#define DO_OPERATION_ON_ALL_TYPES(OPERATION, NAME, TPE, ...)        
do_##OPERATION(NAME, TPE, __VA_ARGS__)
+#define DO_OPERATION_ON_ALL_TYPES(OPERATION, NAME, TPE, ...)        
EXPAND(do_##OPERATION(NAME, TPE, __VA_ARGS__))
 
 /*DUMMY_PARAM is just an ugly workaround for the fact that a variadic macro 
must have at least one variadic parameter*/
 #define DO_OPERATION_IF_ALLOWED(OPERATION, NAME, TPE)               
DO_OPERATION_ON_##NAME(OPERATION, TPE, 0 /*DUMMY_PARAM*/)
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to