Skip to content

Commit 234044f

Browse files
author
Hendrik Muhs
committed
disallow fieldnames to start or end with '.' to avoid mapping problems
on indexing.
1 parent f74663f commit 234044f

File tree

2 files changed

+24
-0
lines changed
  • x-pack/plugin/core/src

2 files changed

+24
-0
lines changed

x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/transform/transforms/pivot/PivotConfig.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,16 @@ static List<String> aggFieldValidation(List<String> usedNames) {
211211
validationFailures.add("duplicate field [" + usedNames.get(i) + "] detected");
212212
}
213213
}
214+
215+
for (String name : usedNames) {
216+
if (name.startsWith(".")) {
217+
validationFailures.add("field [" + name + "] must not start with '.'");
218+
}
219+
if (name.endsWith(".")) {
220+
validationFailures.add("field [" + name + "] must not end with '.'");
221+
}
222+
}
223+
214224
return validationFailures;
215225
}
216226

x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/transforms/pivot/PivotConfigTests.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,20 @@ public void testAggNameValidationsWithDuplicatesAndNestingIssues() {
205205
);
206206
}
207207

208+
public void testAggNameValidationsWithInvalidFieldnames() {
209+
List<String> failures = PivotConfig.aggFieldValidation(Arrays.asList(".at_start", "at_end.", ".start_and_end."));
210+
211+
assertThat(
212+
failures,
213+
containsInAnyOrder(
214+
"field [.at_start] must not start with '.'",
215+
"field [at_end.] must not end with '.'",
216+
"field [.start_and_end.] must not start with '.'",
217+
"field [.start_and_end.] must not end with '.'"
218+
)
219+
);
220+
}
221+
208222
private static String dotJoin(String... fields) {
209223
return Strings.arrayToDelimitedString(fields, ".");
210224
}

0 commit comments

Comments
 (0)