summaryrefslogtreecommitdiffstats
path: root/web/api/queries
diff options
context:
space:
mode:
authorCosta Tsaousis <costa@tsaousis.gr>2018-10-26 02:53:22 +0300
committerGitHub <noreply@github.com>2018-10-26 02:53:22 +0300
commitcdf57a00e1f1d8600bc0b90bf8f446ac475aef35 (patch)
treeb59b302335e9622b1f499d2a50ea3fd1479f4a1e /web/api/queries
parent7395d64aed0416b3c470f6b1cbf61e21bf77a508 (diff)
fix query min-max, again... (#4495)
Diffstat (limited to 'web/api/queries')
-rw-r--r--web/api/queries/query.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/web/api/queries/query.c b/web/api/queries/query.c
index b157d2a962..87e8de09ed 100644
--- a/web/api/queries/query.c
+++ b/web/api/queries/query.c
@@ -408,7 +408,7 @@ static inline void do_dimension(
RRDR_VALUE_FLAGS
group_value_flags = RRDR_VALUE_NOTHING;
- calculated_number min = NAN, max = NAN;
+ calculated_number min = r->min, max = r->max;
size_t db_points_read = 0;
for( ; points_added < points_wanted ; now += dt, slot++ ) {
if(unlikely(slot >= entries)) slot = 0;
@@ -466,12 +466,18 @@ static inline void do_dimension(
calculated_number value = r->internal.grouping_flush(r, rrdr_value_options_ptr);
r->v[rrdr_line * r->d + dim_id_in_rrdr] = value;
- if(likely(points_added)) {
+ if(likely(points_added || dim_id_in_rrdr)) {
+ // find the min/max across all dimensions
+
if(unlikely(value < min)) min = value;
if(unlikely(value > max)) max = value;
+
}
- else
+ else {
+ // runs only when dim_id_in_rrdr == 0 && points_added == 0
+ // so, on the first point added for the query.
min = max = value;
+ }
points_added++;
values_in_group = 0;