diff options
author | Tor Brede Vekterli <vekterli@oath.com> | 2018-06-07 12:51:15 +0200 |
---|---|---|
committer | Tor Brede Vekterli <vekterli@oath.com> | 2018-06-07 12:51:15 +0200 |
commit | 8fcb70aac51836e84deabfc1e43853701cb801aa (patch) | |
tree | d047ea3bf25a38b73a3cc6c4beb9eeb4a2fb7813 /indexinglanguage | |
parent | c6bdb3015528cc6358eaf978e94c690e14ed5042 (diff) |
Restrict what field path updates may be considered 'complete'
Only allow field value update conversion of updates that affect a top
level field value.
Diffstat (limited to 'indexinglanguage')
-rw-r--r-- | indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldPathUpdateHelper.java | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldPathUpdateHelper.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldPathUpdateHelper.java index 171c6a8eb9a..5c170fe147e 100644 --- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldPathUpdateHelper.java +++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldPathUpdateHelper.java @@ -20,19 +20,10 @@ public abstract class FieldPathUpdateHelper { if (!(update instanceof AssignFieldPathUpdate)) { return false; } - for (FieldPathEntry entry : update.getFieldPath()) { - switch (entry.getType()) { - case STRUCT_FIELD: - case MAP_ALL_KEYS: - case MAP_ALL_VALUES: - continue; - case ARRAY_INDEX: - case MAP_KEY: - case VARIABLE: - return false; - } - } - return true; + // Only consider field path updates that touch a top-level field as 'complete', + // as these may be converted to regular field value updates. + return ((update.getFieldPath().size() == 1) + && update.getFieldPath().get(0).getType() == FieldPathEntry.Type.STRUCT_FIELD); } public static void applyUpdate(FieldPathUpdate update, Document doc) { |