Changeset: e05c56f907c2 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/e05c56f907c2
Modified Files:
monetdb5/modules/mal/pp_hash.c
monetdb5/modules/mal/pp_sort.c
Branch: pp_hashjoin
Log Message:
more macros with do/while
diffs (154 lines):
diff --git a/monetdb5/modules/mal/pp_hash.c b/monetdb5/modules/mal/pp_hash.c
--- a/monetdb5/modules/mal/pp_hash.c
+++ b/monetdb5/modules/mal/pp_hash.c
@@ -3345,14 +3345,14 @@ OAHASHnth_slice(Client ctx, bat *slice,
T *v = Tloc(i, 0); \
for (BUN j = 0; j<cnt; j++) \
h[j] = _hash_##T((T)v[j]); \
- } while (0);
+ } while (0)
#define hashloopf(T, BT) \
do { \
T *v = Tloc(i, 0); \
for (BUN j = 0; j<cnt; j++) \
h[j] = _hash_##T(*(BT*)(v+j)); \
- } while (0);
+ } while (0)
static str
OAHASHhash(Client cntxt, MalBlkPtr m, MalStkPtr stk, InstrPtr p)
diff --git a/monetdb5/modules/mal/pp_sort.c b/monetdb5/modules/mal/pp_sort.c
--- a/monetdb5/modules/mal/pp_sort.c
+++ b/monetdb5/modules/mal/pp_sort.c
@@ -446,69 +446,72 @@ PPmerge(Client cntxt, MalBlkPtr mb, MalS
}
}
-#define zzl_vvproject(T, res, zzl, lcol, rcol) { \
- oid *o = (oid*)Tloc(res, 0); \
- oid l = lcol->tseqbase; \
- oid r = rcol->tseqbase; \
- oid v = side?r:l; \
- BUN p = side?rp:lp; \
- for (BUN k = 0; k<sz; k++) { \
- int nr = z[k]; \
- for (int j = 0; j<nr; j++, p++, op++) \
- o[op] = v+p; \
- if (side) { \
- rp = p; \
- p = lp; \
- } else { \
- lp = p; \
- p = rp; \
+#define zzl_vvproject(T, res, zzl, lcol, rcol) \
+ do { \
+ oid *o = (oid*)Tloc(res, 0); \
+ oid l = lcol->tseqbase; \
+ oid r = rcol->tseqbase; \
+ oid v = side?r:l; \
+ BUN p = side?rp:lp; \
+ for (BUN k = 0; k<sz; k++) { \
+ int nr = z[k]; \
+ for (int j = 0; j<nr; j++, p++, op++) \
+ o[op] = v+p; \
+ if (side) { \
+ rp = p; \
+ p = lp; \
+ } else { \
+ lp = p; \
+ p = rp; \
+ } \
+ side = !side; \
+ v = side?r:l; \
} \
- side = !side; \
- v = side?r:l; \
- } \
-}
+ } while (0)
-#define zzl_vproject(T, res, zzl, lcol, rcol) { \
- oid *o = (oid*)Tloc(res, 0); \
- oid l = lcol->tseqbase; \
- oid *r = Tloc(rcol, 0); \
- BUN p = side?rp:lp; \
- for (BUN k = 0; k<sz; k++) { \
- int nr = z[k]; \
- for (int j = 0; j<nr; j++, p++, op++) \
- o[op] = side?r[p]:l+p; \
- if (side) { \
- rp = p; \
- p = lp; \
- } else { \
- lp = p; \
- p = rp; \
+#define zzl_vproject(T, res, zzl, lcol, rcol) \
+ do { \
+ oid *o = (oid*)Tloc(res, 0); \
+ oid l = lcol->tseqbase; \
+ oid *r = Tloc(rcol, 0); \
+ BUN p = side?rp:lp; \
+ for (BUN k = 0; k<sz; k++) { \
+ int nr = z[k]; \
+ for (int j = 0; j<nr; j++, p++, op++) \
+ o[op] = side?r[p]:l+p; \
+ if (side) { \
+ rp = p; \
+ p = lp; \
+ } else { \
+ lp = p; \
+ p = rp; \
+ } \
+ side = !side; \
} \
- side = !side; \
- } \
-}
+ } while (0)
-#define zzl_project(T, res, zzl, lcol, rcol) { \
- T *o = Tloc(res, 0); \
- T *l = Tloc(lcol, 0); \
- T *r = Tloc(rcol, 0); \
- T *v = side?r:l; \
- BUN p = side?rp:lp; \
- for (BUN k = 0; k<sz; k++) { \
- int nr = z[k]; \
- for (int j = 0; j<nr; j++, p++, op++) \
- o[op] = v[p]; \
- if (side) { \
- rp = p; \
- p = lp; \
- } else { \
- lp = p; \
- p = rp; \
+#define zzl_project(T, res, zzl, lcol, rcol) \
+ do { \
+ T *o = Tloc(res, 0); \
+ T *l = Tloc(lcol, 0); \
+ T *r = Tloc(rcol, 0); \
+ T *v = side?r:l; \
+ BUN p = side?rp:lp; \
+ for (BUN k = 0; k<sz; k++) { \
+ int nr = z[k]; \
+ for (int j = 0; j<nr; j++, p++, op++) \
+ o[op] = v[p]; \
+ if (side) { \
+ rp = p; \
+ p = lp; \
+ } else { \
+ lp = p; \
+ p = rp; \
+ } \
+ side = !side; \
+ v = side?r:l; \
} \
- side = !side; \
- v = side?r:l; \
- } \
-}
+ } while (0)
/*later optimize by starting at end, moving tuples */
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]