Changeset: aa654362a9b8 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=aa654362a9b8
Modified Files:
        gdk/gdk_join.c
Branch: default
Log Message:

Layout; and use const.


diffs (145 lines):

diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c
--- a/gdk/gdk_join.c
+++ b/gdk/gdk_join.c
@@ -1942,73 +1942,71 @@ BATsubjoin(BAT **r1p, BAT **r2p, BAT *l,
 }
 
 #define projectargs bn,l,r,nilcheck
-#define project_loop(NAME, TYPE)                                               
        \
-static int                                                                     
        \
-NAME##_##TYPE( BAT *bn, BAT *l, BAT *r, int nilcheck)                          
        \
-{                                                                              
        \
-       BUN n;                                                                  
        \
-       oid lo, hi;                                                             
        \
-       TYPE *rt, *bt;                                                          
        \
-       TYPE v, prev = 0;                                                       
        \
-       const oid *o;                                                           
        \
-                                                                               
        \
-       o = (const oid *) Tloc(l, BUNfirst(l));                                 
        \
-       rt = (TYPE *) Tloc(r, BUNfirst(r));                                     
        \
-       bt = (TYPE *) Tloc(bn, BUNfirst(bn));                                   
        \
-       n = BUNfirst(bn);                                                       
        \
-       for (lo = 0, hi = lo + BATcount(l); lo < hi; lo++, o++, n++) {          
        \
-               if (*o == oid_nil) {                                            
        \
-                       bt[n] = TYPE##_nil;                                     
        \
-                       bn->T->nonil = 0;                                       
        \
-                       bn->T->nil = 1;                                         
        \
-                       bn->tsorted = 0;                                        
        \
-                       bn->trevsorted = 0;                                     
        \
-                       bn->tkey = 0;                                           
        \
-               } else if (*o < r->hseqbase ||                                  
        \
-                       *o >= r->hseqbase + BATcount(r)) {                      
        \
-                       GDKerror("BATproject: does not match always\n");        
        \
-                       return GDK_FAIL;                                        
        \
-               } else {                                                        
        \
-                       v = rt[*o - r->hseqbase];                               
        \
-                       bt[n] = v;                                              
        \
-                       if (nilcheck && bn->T->nonil && v == TYPE##_nil) {      
        \
-                               bn->T->nonil = 0;                               
        \
-                               bn->T->nil = 1;                                 
        \
-                       }                                                       
        \
-                       if (lo && (bn->trevsorted | bn->tsorted | bn->tkey)) {  
        \
-                               if (v > prev) {                                 
        \
-                                       bn->trevsorted = 0;                     
        \
-                                       if (!bn->tsorted)                       
        \
-                                               bn->tkey = 0; /* can't be sure 
*/       \
-                               } else if (v < prev) {                          
        \
-                                       bn->tsorted = 0;                        
        \
-                                       if (!bn->trevsorted)                    
        \
-                                               bn->tkey = 0; /* can't be sure 
*/       \
-                               } else {                                        
        \
-                                       bn->tkey = 0; /* definitely */          
        \
-                               }                                               
        \
-                       }                                                       
        \
-                       prev = v;                                               
        \
-               }                                                               
        \
-       }                                                                       
        \
-       assert(n == BATcount(l));                                               
        \
-       BATsetcount(bn, n);                                                     
        \
-       return GDK_SUCCEED;                                                     
        \
+#define project_loop(TYPE)                                             \
+static int                                                             \
+project_##TYPE(BAT *bn, BAT *l, BAT *r, int nilcheck)                  \
+{                                                                      \
+       BUN n;                                                          \
+       oid lo, hi;                                                     \
+       const TYPE *rt;                                                 \
+       TYPE *bt;                                                       \
+       TYPE v, prev = 0;                                               \
+       const oid *o;                                                   \
+                                                                       \
+       o = (const oid *) Tloc(l, BUNfirst(l));                         \
+       rt = (const TYPE *) Tloc(r, BUNfirst(r));                       \
+       bt = (TYPE *) Tloc(bn, BUNfirst(bn));                           \
+       n = BUNfirst(bn);                                               \
+       for (lo = 0, hi = lo + BATcount(l); lo < hi; lo++, o++, n++) {  \
+               if (*o == oid_nil) {                                    \
+                       bt[n] = TYPE##_nil;                             \
+                       bn->T->nonil = 0;                               \
+                       bn->T->nil = 1;                                 \
+                       bn->tsorted = 0;                                \
+                       bn->trevsorted = 0;                             \
+                       bn->tkey = 0;                                   \
+               } else if (*o < r->hseqbase ||                          \
+                       *o >= r->hseqbase + BATcount(r)) {              \
+                       GDKerror("BATproject: does not match always\n"); \
+                       return GDK_FAIL;                                \
+               } else {                                                \
+                       v = rt[*o - r->hseqbase];                       \
+                       bt[n] = v;                                      \
+                       if (nilcheck && bn->T->nonil && v == TYPE##_nil) { \
+                               bn->T->nonil = 0;                       \
+                               bn->T->nil = 1;                         \
+                       }                                               \
+                       if (lo && (bn->trevsorted | bn->tsorted | bn->tkey)) { \
+                               if (v > prev) {                         \
+                                       bn->trevsorted = 0;             \
+                                       if (!bn->tsorted)               \
+                                               bn->tkey = 0; /* can't be sure 
*/ \
+                               } else if (v < prev) {                  \
+                                       bn->tsorted = 0;                \
+                                       if (!bn->trevsorted)            \
+                                               bn->tkey = 0; /* can't be sure 
*/ \
+                               } else {                                \
+                                       bn->tkey = 0; /* definitely */  \
+                               }                                       \
+                       }                                               \
+                       prev = v;                                       \
+               }                                                       \
+       }                                                               \
+       assert(n == BATcount(l));                                       \
+       BATsetcount(bn, n);                                             \
+       return GDK_SUCCEED;                                             \
 }
 
 /* project type switch */
-#define project_type(NAME)               \
-       project_loop(NAME, bte)          \
-        project_loop(NAME, sht)          \
-        project_loop(NAME, int)          \
-        project_loop(NAME, flt)          \
-        project_loop(NAME, dbl)          \
-        project_loop(NAME, lng)         
-       
-project_type(project)
+project_loop(bte)
+project_loop(sht)
+project_loop(int)
+project_loop(flt)
+project_loop(dbl)
+project_loop(lng)
 
 static int
-project_any( BAT *bn, BAT *l, BAT *r, int nilcheck)
+project_any(BAT *bn, BAT *l, BAT *r, int nilcheck)
 {
        BUN n;
        oid lo, hi;
@@ -2169,6 +2167,7 @@ BATproject(BAT *l, BAT *r)
                break;
        default:
                res = project_any(projectargs);
+               break;
        }
 
        /* handle string trick */
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to