condition dimension query.
Test: Modified the metric link test to query a subset of the predicate/condition dimensions.
Change-Id: I693f14e0b11693fc8ee0bf4fc550977c20d31f71
diff --git a/cmds/statsd/src/dimension.cpp b/cmds/statsd/src/dimension.cpp
index 09499b6..bb7a044 100644
--- a/cmds/statsd/src/dimension.cpp
+++ b/cmds/statsd/src/dimension.cpp
@@ -331,13 +331,15 @@
case DimensionsValue::ValueCase::kValueFloat:
return dimension.value_float() == sub.value_float();
case DimensionsValue::ValueCase::kValueTuple: {
- if (dimension.value_tuple().dimensions_value_size() < sub.value_tuple().dimensions_value_size()) {
+ if (dimension.value_tuple().dimensions_value_size() <
+ sub.value_tuple().dimensions_value_size()) {
return false;
}
bool allSub = true;
- for (int i = 0; i < sub.value_tuple().dimensions_value_size(); ++i) {
+ for (int i = 0; allSub && i < sub.value_tuple().dimensions_value_size(); ++i) {
bool isSub = false;
- for (int j = 0; !isSub && j < dimension.value_tuple().dimensions_value_size(); ++j) {
+ for (int j = 0; !isSub &&
+ j < dimension.value_tuple().dimensions_value_size(); ++j) {
isSub |= IsSubDimension(dimension.value_tuple().dimensions_value(j),
sub.value_tuple().dimensions_value(i));
}