From a8220ab2d293bb7f4b014b79d16b2fb05090fa93 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Feb 2021 12:45:55 +0100 Subject: Adding upstream version 1.29.0. Signed-off-by: Daniel Baumann --- web/api/queries/rrdr.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'web/api/queries/rrdr.c') diff --git a/web/api/queries/rrdr.c b/web/api/queries/rrdr.c index e727e607e..6cd0c0b14 100644 --- a/web/api/queries/rrdr.c +++ b/web/api/queries/rrdr.c @@ -98,7 +98,7 @@ inline void rrdr_free(RRDR *r) freez(r); } -RRDR *rrdr_create(RRDSET *st, long n) +RRDR *rrdr_create(struct rrdset *st, long n, struct context_param *context_param_list) { if(unlikely(!st)) { error("NULL value given!"); @@ -110,8 +110,16 @@ RRDR *rrdr_create(RRDSET *st, long n) rrdr_lock_rrdset(r); + RRDDIM *temp_rd = context_param_list ? context_param_list->rd : NULL; RRDDIM *rd; - rrddim_foreach_read(rd, st) r->d++; + if (temp_rd) { + RRDDIM *t = temp_rd; + while (t) { + r->d++; + t = t->next; + } + } else + rrddim_foreach_read(rd, st) r->d++; r->n = n; @@ -122,7 +130,7 @@ RRDR *rrdr_create(RRDSET *st, long n) // set the hidden flag on hidden dimensions int c; - for(c = 0, rd = st->dimensions ; rd ; c++, rd = rd->next) { + for(c = 0, rd = temp_rd?temp_rd:st->dimensions ; rd ; c++, rd = rd->next) { if(unlikely(rrddim_flag_check(rd, RRDDIM_FLAG_HIDDEN))) r->od[c] = RRDR_DIMENSION_HIDDEN; else -- cgit v1.2.3