diff options
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search')
5 files changed, 23 insertions, 11 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/query/profile/AllValuesQueryProfileVisitor.java b/container-search/src/main/java/com/yahoo/search/query/profile/AllValuesQueryProfileVisitor.java index 6886b53e1d4..f27500085e1 100644 --- a/container-search/src/main/java/com/yahoo/search/query/profile/AllValuesQueryProfileVisitor.java +++ b/container-search/src/main/java/com/yahoo/search/query/profile/AllValuesQueryProfileVisitor.java @@ -43,7 +43,9 @@ final class AllValuesQueryProfileVisitor extends PrefixQueryProfileVisitor { if (fullName.isEmpty()) return; // Avoid putting a non-leaf (subtree) root in the list if (values.containsKey(fullName.toString())) return; // The first value encountered has priority - values.put(fullName.toString(), new ValueWithSource(value, owner.getSource(), variant)); + values.put(fullName.toString(), new ValueWithSource(value, + owner == null ? "anonymous" : owner.getSource(), + variant)); } /** Returns the values resulting from this visiting */ diff --git a/container-search/src/main/java/com/yahoo/search/query/profile/BackedOverridableQueryProfile.java b/container-search/src/main/java/com/yahoo/search/query/profile/BackedOverridableQueryProfile.java index e6af1311bc3..99f1e26b221 100644 --- a/container-search/src/main/java/com/yahoo/search/query/profile/BackedOverridableQueryProfile.java +++ b/container-search/src/main/java/com/yahoo/search/query/profile/BackedOverridableQueryProfile.java @@ -33,10 +33,13 @@ public class BackedOverridableQueryProfile extends OverridableQueryProfile imple public BackedOverridableQueryProfile(QueryProfile backingProfile) { Validator.ensureNotNull("An overridable query profile must be backed by a real query profile",backingProfile); setType(backingProfile.getType()); - this.backingProfile=backingProfile; + this.backingProfile = backingProfile; } @Override + public String getSource() { return backingProfile.getSource(); } + + @Override public synchronized void freeze() { super.freeze(); backingProfile.freeze(); diff --git a/container-search/src/main/java/com/yahoo/search/query/profile/DimensionValues.java b/container-search/src/main/java/com/yahoo/search/query/profile/DimensionValues.java index b70474371d4..9eb50c0f72e 100644 --- a/container-search/src/main/java/com/yahoo/search/query/profile/DimensionValues.java +++ b/container-search/src/main/java/com/yahoo/search/query/profile/DimensionValues.java @@ -5,6 +5,7 @@ import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * An immutable set of dimension values. @@ -104,7 +105,9 @@ public class DimensionValues implements Comparable<DimensionValues> { } @Override - public String toString() { return Arrays.toString(values); } + public String toString() { + return "[" + Arrays.stream(values).map(value -> value == null ? "*" : value).collect(Collectors.joining(", ")) + "]"; + } public boolean isEmpty() { return this==empty; diff --git a/container-search/src/main/java/com/yahoo/search/query/profile/OverridableQueryProfile.java b/container-search/src/main/java/com/yahoo/search/query/profile/OverridableQueryProfile.java index 325c85ac491..37940b813dc 100644 --- a/container-search/src/main/java/com/yahoo/search/query/profile/OverridableQueryProfile.java +++ b/container-search/src/main/java/com/yahoo/search/query/profile/OverridableQueryProfile.java @@ -17,7 +17,11 @@ public class OverridableQueryProfile extends QueryProfile { /** Creates an unbacked overridable query profile */ protected OverridableQueryProfile() { - super(ComponentId.createAnonymousComponentId(simpleClassName)); + this(""); + } + + protected OverridableQueryProfile(String sourceName) { + super(ComponentId.createAnonymousComponentId(simpleClassName), sourceName); } @Override @@ -31,7 +35,7 @@ public class OverridableQueryProfile extends QueryProfile { @Override protected QueryProfile createSubProfile(String name, DimensionBinding binding) { - return new OverridableQueryProfile(); // Nothing is set in this branch, so nothing to override, but need override checking + return new OverridableQueryProfile(getSource()); // Nothing is set in this branch, so nothing to override, but need override checking } /** Returns a clone of this which can be independently overridden */ diff --git a/container-search/src/main/java/com/yahoo/search/query/profile/compiled/ValueWithSource.java b/container-search/src/main/java/com/yahoo/search/query/profile/compiled/ValueWithSource.java index 79426cbce3a..925d20903c6 100644 --- a/container-search/src/main/java/com/yahoo/search/query/profile/compiled/ValueWithSource.java +++ b/container-search/src/main/java/com/yahoo/search/query/profile/compiled/ValueWithSource.java @@ -15,23 +15,23 @@ public class ValueWithSource { private final Object value; /** The source of the query profile having a value */ - private final String ownerSource; + private final String source; /** The dimension values specifying a variant in that profile, or null if it is not in a variant */ private final DimensionValues variant; - public ValueWithSource(Object value, String ownerSource, DimensionValues variant) { + public ValueWithSource(Object value, String source, DimensionValues variant) { this.value = value; - this.ownerSource = ownerSource; + this.source = source; this.variant = variant; } public Object value() { return value; } - public String ownerSource() { return ownerSource; } + public String source() { return source; } public ValueWithSource withValue(Object value) { - return new ValueWithSource(value, ownerSource, variant); + return new ValueWithSource(value, source, variant); } /** Returns the variant having this value, or empty if it's not in a variant */ @@ -40,7 +40,7 @@ public class ValueWithSource { @Override public String toString() { return value + - " (from query profile '" + ownerSource + "'" + + " (from query profile '" + source + "'" + ( variant != null ? " variant " + variant : "") + ")"; } |