Changeset: 6a406bfa0027 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6a406bfa0027 Modified Files: gdk/gdk_analytic_func.c sql/backends/monet5/sql_rank.c Branch: window-tunning Log Message:
Reduced number of cases for count and updated number of arguments check
diffs (truncated from 405 to 300 lines):
diff --git a/gdk/gdk_analytic_func.c b/gdk/gdk_analytic_func.c
--- a/gdk/gdk_analytic_func.c
+++ b/gdk/gdk_analytic_func.c
@@ -1070,7 +1070,7 @@ ANALYTICAL_MIN_MAX(min, MIN, >)
ANALYTICAL_MIN_MAX(max, MAX, <)
/* Counting no nils for fixed sizes */
-#define ANALYTICAL_COUNT_NO_NIL_FIXED_UNBOUNDED_TILL_CURRENT_ROW(TPE) \
+#define ANALYTICAL_COUNT_FIXED_UNBOUNDED_TILL_CURRENT_ROW(TPE) \
do { \
curval = 0; \
if (count_all) { \
@@ -1098,7 +1098,7 @@ ANALYTICAL_MIN_MAX(max, MAX, <)
} \
} while (0)
-#define ANALYTICAL_COUNT_NO_NIL_FIXED_CURRENT_ROW_TILL_UNBOUNDED(TPE) \
+#define ANALYTICAL_COUNT_FIXED_CURRENT_ROW_TILL_UNBOUNDED(TPE) \
do { \
curval = 0; \
if (count_all) { \
@@ -1129,7 +1129,7 @@ ANALYTICAL_MIN_MAX(max, MAX, <)
k = i; \
} while (0)
-#define ANALYTICAL_COUNT_NO_NIL_FIXED_ALL_ROWS(TPE) \
+#define ANALYTICAL_COUNT_FIXED_ALL_ROWS(TPE) \
do { \
if (count_all) { \
curval = i - k; \
@@ -1144,7 +1144,7 @@ ANALYTICAL_MIN_MAX(max, MAX, <)
} \
} while (0)
-#define ANALYTICAL_COUNT_NO_NIL_FIXED_CURRENT_ROW(TPE) \
+#define ANALYTICAL_COUNT_FIXED_CURRENT_ROW(TPE) \
do { \
if (count_all) { \
for (; k < i; k++) \
@@ -1155,7 +1155,7 @@ ANALYTICAL_MIN_MAX(max, MAX, <)
} \
} while (0)
-#define ANALYTICAL_COUNT_NO_NIL_FIXED_OTHERS(TPE) \
+#define ANALYTICAL_COUNT_FIXED_OTHERS(TPE) \
do { \
if (count_all) { \
for (; k < i; k++) \
@@ -1174,240 +1174,163 @@ ANALYTICAL_MIN_MAX(max, MAX, <)
} while (0)
/* Counting no nils for other types */
-#define ANALYTICAL_COUNT_NO_NIL_OTHERS_UNBOUNDED_TILL_CURRENT_ROW \
+#define ANALYTICAL_COUNT_OTHERS_UNBOUNDED_TILL_CURRENT_ROW \
do { \
curval = 0; \
if (count_all) { \
- if (isvarsized) { \
- for (; k < i; ) { \
- j = k++; \
+ for (; k < i; ) { \
+ j = k++; \
+ curval++; \
+ while (k < i && !op[k]) { \
curval++; \
- while (k < i && !op[k]) { \
- curval++; \
- k++; \
- } \
- for (; j < k; j++) \
- rb[j] = curval; \
+ k++; \
} \
- } else { \
- for (; k < i; ) { \
- j = k++; \
- curval++; \
- while (k < i && !op[k]) { \
- curval++; \
- k++; \
- } \
- for (; j < k; j++) \
- rb[j] = curval; \
- } \
+ for (; j < k; j++) \
+ rb[j] = curval; \
} \
} else { \
- if (isvarsized) { \
- for (; k < i; ) { \
- j = k++; \
- const void *v = base + ((const var_t *)
bheap)[j]; \
- curval += cmp(v, nil) != 0; \
- while (k < i && !op[k]) { \
- curval += cmp(base + ((const
var_t *) bheap)[k], nil) != 0; \
- k++; \
- } \
- for (; j < k; j++) \
- rb[j] = curval; \
+ for (; k < i; ) { \
+ j = k++; \
+ const void *v = BUNtail(bpi, j); \
+ curval += cmp(v, nil) != 0; \
+ while (k < i && !op[k]) { \
+ curval += cmp(BUNtail(bpi, k), nil) !=
0; \
+ k++; \
} \
- } else { \
- for (; k < i; ) { \
- j = k++; \
- const void *v = BUNtail(bpi, j); \
- curval += cmp(v, nil) != 0; \
- while (k < i && !op[k]) { \
- curval += cmp(BUNtail(bpi, k),
nil) != 0; \
- k++; \
- } \
- for (; j < k; j++) \
- rb[j] = curval; \
- } \
+ for (; j < k; j++) \
+ rb[j] = curval; \
} \
} \
} while (0)
-#define ANALYTICAL_COUNT_NO_NIL_OTHERS_CURRENT_ROW_TILL_UNBOUNDED \
+#define ANALYTICAL_COUNT_OTHERS_CURRENT_ROW_TILL_UNBOUNDED \
do { \
curval = 0; \
if (count_all) { \
- if (isvarsized) { \
- for (j = i - 1; j >= k; ) { \
- l = j--; \
+ for (j = i - 1; j >= k; ) { \
+ l = j--; \
+ curval++; \
+ while (j >= k && !op[j]) { \
curval++; \
- while (j >= k && !op[j]) { \
- curval++; \
- j--; \
- } \
- m = MAX(k, j); \
- for (; l >= m; l--) \
- rb[l] = curval; \
- } \
- } else { \
- for (j = i - 1; j >= k; ) { \
- l = j--; \
- curval++; \
- while (j >= k && !op[j]) { \
- curval++; \
- j--; \
- } \
- m = MAX(k, j); \
- for (; l >= m; l--) \
- rb[l] = curval; \
- } \
- } \
+ j--; \
+ } \
+ m = MAX(k, j); \
+ for (; l >= m; l--) \
+ rb[l] = curval; \
+ } \
} else { \
- if (isvarsized) { \
- for (j = i - 1; j >= k; ) { \
- l = j--; \
- const void *v = base + ((const var_t *)
bheap)[l]; \
- curval += cmp(v, nil) != 0; \
- while (j >= k && !op[j]) { \
- curval += cmp(base + ((const
var_t *) bheap)[j], nil) != 0; \
- j--; \
- } \
- m = MAX(k, j); \
- for (; l >= m; l--) \
- rb[l] = curval; \
- } \
- } else { \
- for (j = i - 1; j >= k; ) { \
- l = j--; \
- const void *v = Tloc(b, l); \
- curval += cmp(v, nil) != 0; \
- while (j >= k && !op[j]) { \
- curval += cmp(BUNtail(bpi, j),
nil) != 0; \
- j--; \
- } \
- m = MAX(k, j); \
- for (; l >= m; l--) \
- rb[l] = curval; \
- } \
- } \
- } \
+ for (j = i - 1; j >= k; ) { \
+ l = j--; \
+ const void *v = Tloc(b, l); \
+ curval += cmp(v, nil) != 0; \
+ while (j >= k && !op[j]) { \
+ curval += cmp(BUNtail(bpi, j), nil) !=
0; \
+ j--; \
+ } \
+ m = MAX(k, j); \
+ for (; l >= m; l--) \
+ rb[l] = curval; \
+ } \
+ } \
k = i; \
} while (0)
-#define ANALYTICAL_COUNT_NO_NIL_OTHERS_ALL_ROWS \
+#define ANALYTICAL_COUNT_OTHERS_ALL_ROWS \
do { \
curval = 0; \
if (count_all) { \
curval = i - k; \
} else { \
- if (isvarsized) { \
- for (; j < i; j++) \
- curval += cmp(nil, base + ((const var_t
*) bheap)[j]) != 0; \
- } else { \
- for (; j < i; j++) \
- curval += cmp(BUNtail(bpi, j), nil) !=
0; \
- } \
+ for (; j < i; j++) \
+ curval += cmp(BUNtail(bpi, j), nil) != 0; \
} \
for (; k < i; k++) \
rb[k] = curval; \
} while (0)
-#define ANALYTICAL_COUNT_NO_NIL_OTHERS_CURRENT_ROW \
+#define ANALYTICAL_COUNT_OTHERS_CURRENT_ROW \
do { \
if (count_all) { \
for (; k < i; k++) \
rb[k] = 1; \
} else { \
- if (isvarsized) { \
- for (; k < i; k++) \
- rb[k] = cmp(nil, base + ((const var_t
*) bheap)[k]) != 0; \
- } else { \
- for (; k < i; k++) \
- rb[k] = cmp(BUNtail(bpi, k), nil) != 0;
\
- } \
+ for (; k < i; k++) \
+ rb[k] = cmp(BUNtail(bpi, k), nil) != 0; \
} \
} while (0)
-#define ANALYTICAL_COUNT_NO_NIL_OTHERS_OTHERS \
+#define ANALYTICAL_COUNT_OTHERS_OTHERS \
do { \
if (count_all) { \
for (; k < i; k++) \
rb[k] = (end[k] > start[k]) ? (end[k] -
start[k]) : 0; \
} else { \
curval = 0; \
- if (isvarsized) { \
- for (; k < i; k++) { \
- j = start[k]; \
- l = end[k]; \
- for (; j < l; j++) \
- curval += cmp(nil, base +
((const var_t *) bheap)[j]) != 0; \
- rb[k] = curval; \
- curval = 0; \
- } \
- } else { \
- for (; k < i; k++) { \
- j = start[k]; \
- l = end[k]; \
- for (; j < l; j++) \
- curval += cmp(BUNtail(bpi, j),
nil) != 0; \
- rb[k] = curval; \
- curval = 0; \
- } \
+ for (; k < i; k++) { \
+ j = start[k]; \
+ l = end[k]; \
+ for (; j < l; j++) \
+ curval += cmp(BUNtail(bpi, j), nil) !=
0; \
+ rb[k] = curval; \
+ curval = 0; \
} \
} \
} while (0)
/* Now do the count analytic function branches */
-#define ANALYTICAL_COUNT_NO_NIL_FIXED_PARTITIONS(TPE, IMP) \
+#define ANALYTICAL_COUNT_FIXED_PARTITIONS(TPE, IMP) \
do { \
TPE *bp = (TPE*) bheap; \
if (p) { \
for (; i < cnt; i++) { \
if (np[i]) \
-
ANALYTICAL_COUNT_NO_NIL_FIXED_##IMP(TPE); \
+ ANALYTICAL_COUNT_FIXED_##IMP(TPE); \
} \
} \
i = cnt; \
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list
