diff options
author | Costa Tsaousis <costa@netdata.cloud> | 2022-07-16 11:40:45 +0300 |
---|---|---|
committer | Costa Tsaousis <costa@netdata.cloud> | 2022-07-16 11:40:45 +0300 |
commit | 8b1c7950a21b5862236e6f6932eeda7cacaa4655 (patch) | |
tree | 46f96f9e04645e46446b8dadc6ef006f20af75fd | |
parent | 2f2997d196e55462070b4450a793cf32c0027614 (diff) |
allow merging of families down to [x]
-rw-r--r-- | database/rrdcontext.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/database/rrdcontext.c b/database/rrdcontext.c index bf9731e75b..84d35ea27a 100644 --- a/database/rrdcontext.c +++ b/database/rrdcontext.c @@ -1364,20 +1364,22 @@ static void rrdcontext_delete_callback(const char *id, void *value, void *data) } static STRING *string_2way_merge(RRDCONTEXT *rc __maybe_unused, STRING *a, STRING *b) { - static STRING *X = NULL, *X2 = NULL; + static STRING *X = NULL; if(unlikely(!X)) { - X = string_strdupz("X"); - X2 = string_strdupz("[x]"); + // initialization + X = string_strdupz("[x]"); } if(unlikely(a == b)) return string_dup(a); - if(unlikely(!a || a == X || a == X2)) return string_dup(b); - if(unlikely(!b || b == X || b == X2)) return string_dup(a); + if(unlikely(a == X)) return string_dup(a); + if(unlikely(b == X)) return string_dup(b); + if(unlikely(!a)) return string_dup(X); + if(unlikely(!b)) return string_dup(X); size_t alen = string_length(a); size_t blen = string_length(b); - size_t length = alen + blen + string_length(X2) + 1; + size_t length = alen + blen + string_length(X) + 1; char buf1[length + 1], buf2[length + 1], *dst1, *dst2; const char *s1, *s2; @@ -1404,9 +1406,6 @@ static STRING *string_2way_merge(RRDCONTEXT *rc __maybe_unused, STRING *a, STRIN strcpy(dst1, dst2); } - if(strcmp(buf1, string2str(X2)) == 0) - return string_dup(a); - return string_strdupz(buf1); } |