summaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/search
diff options
context:
space:
mode:
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search')
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/profile/AllValuesQueryProfileVisitor.java4
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/profile/BackedOverridableQueryProfile.java5
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/profile/DimensionValues.java5
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/profile/OverridableQueryProfile.java8
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/profile/compiled/ValueWithSource.java12
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 : "") +
")";
}