diff options
Diffstat (limited to 'libnetdata')
-rw-r--r-- | libnetdata/facets/facets.c | 10 | ||||
-rw-r--r-- | libnetdata/facets/facets.h | 2 |
2 files changed, 8 insertions, 4 deletions
diff --git a/libnetdata/facets/facets.c b/libnetdata/facets/facets.c index 8762b43b9..b285baf03 100644 --- a/libnetdata/facets/facets.c +++ b/libnetdata/facets/facets.c @@ -1,6 +1,5 @@ #include "facets.h" -#define FACET_VALUE_UNSET "-" #define HISTOGRAM_COLUMNS 60 static void facets_row_free(FACETS *facets __maybe_unused, FACET_ROW *row); @@ -197,14 +196,14 @@ static void facet_value_insert_callback(const DICTIONARY_ITEM *item __maybe_unus FACET_VALUE *v = value; FACET_KEY *k = data; + if(!v->selected) + v->selected = k->default_selected_for_values; + if(v->name) { // an actual value, not a filter v->name = strdupz(v->name); facet_value_is_used(k, v); } - - if(!v->selected) - v->selected = k->default_selected_for_values; } static bool facet_value_conflict_callback(const DICTIONARY_ITEM *item __maybe_unused, void *old_value, void *new_value, void *data) { @@ -219,6 +218,9 @@ static bool facet_value_conflict_callback(const DICTIONARY_ITEM *item __maybe_un if(v->name) facet_value_is_used(k, v); + internal_fatal(v->name && strcmp(v->name, nv->name) != 0, "hash conflict: '%s' and '%s' have the same hash '%s'", v->name, nv->name, + dictionary_acquired_item_name(item)); + return false; } diff --git a/libnetdata/facets/facets.h b/libnetdata/facets/facets.h index c0f7f80c8..796d15a04 100644 --- a/libnetdata/facets/facets.h +++ b/libnetdata/facets/facets.h @@ -3,6 +3,8 @@ #include "../libnetdata.h" +#define FACET_VALUE_UNSET "-" + typedef enum __attribute__((packed)) { FACET_KEY_OPTION_FACET = (1 << 0), // filterable values FACET_KEY_OPTION_NO_FACET = (1 << 1), // non-filterable value |