Skip to content

Commit

Permalink
Rename Mapper#simpleName to Mapper#leafName (elastic#110030)
Browse files Browse the repository at this point in the history
This addresses a long standing TODO that caused quite a few bugs over time, in that the mapper name does not include its full path, while
the MappedFieldType name does. We have method called simpleName to signal that, but leafName signals that more clearly and aligns with
the name we have recently introduced in Mapper.Builder (renamed from name to leafName).

Relates to elastic#109971
  • Loading branch information
javanna authored Jun 21, 2024
1 parent e203b0c commit 54e7b4d
Show file tree
Hide file tree
Showing 58 changed files with 148 additions and 151 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -610,7 +610,7 @@ protected String contentType() {
@Override
public FieldMapper.Builder getMergeBuilder() {
return new Builder(
simpleName(),
leafName(),
indexCreatedVersion,
builder.ignoreMalformed.getDefaultValue().value(),
builder.coerce.getDefaultValue().value()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -405,7 +405,7 @@ public Map<String, NamedAnalyzer> indexAnalyzers() {

@Override
public FieldMapper.Builder getMergeBuilder() {
return new Builder(simpleName(), indexCreatedVersion, indexAnalyzers).init(this);
return new Builder(leafName(), indexCreatedVersion, indexAnalyzers).init(this);
}

@Override
Expand Down Expand Up @@ -447,7 +447,7 @@ public SourceLoader.SyntheticFieldLoader syntheticFieldLoader() {
"field [" + name() + "] of type [" + typeName() + "] doesn't support synthetic source because it declares copy_to"
);
}
return new StringStoredFieldFieldLoader(fieldType().storedFieldNameForSyntheticSource(), simpleName(), null) {
return new StringStoredFieldFieldLoader(fieldType().storedFieldNameForSyntheticSource(), leafName(), null) {
@Override
protected void write(XContentBuilder b, Object value) throws IOException {
b.value((String) value);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,6 @@ protected String contentType() {

@Override
public FieldMapper.Builder getMergeBuilder() {
return new Builder(simpleName()).init(this);
return new Builder(leafName()).init(this);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ public Map<String, NamedAnalyzer> indexAnalyzers() {

@Override
public FieldMapper.Builder getMergeBuilder() {
return new Builder(simpleName()).init(this);
return new Builder(leafName()).init(this);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -511,7 +511,7 @@ protected String contentType() {

@Override
public FieldMapper.Builder getMergeBuilder() {
return new Builder(simpleName(), ignoreMalformedByDefault, coerceByDefault, indexMode).metric(metricType).init(this);
return new Builder(leafName(), ignoreMalformedByDefault, coerceByDefault, indexMode).metric(metricType).init(this);
}

@Override
Expand Down Expand Up @@ -729,7 +729,7 @@ public SourceLoader.SyntheticFieldLoader syntheticFieldLoader() {
"field [" + name() + "] of type [" + typeName() + "] doesn't support synthetic source because it declares copy_to"
);
}
return new SortedNumericDocValuesSyntheticFieldLoader(name(), simpleName(), ignoreMalformed.value()) {
return new SortedNumericDocValuesSyntheticFieldLoader(name(), leafName(), ignoreMalformed.value()) {
@Override
protected void writeValue(XContentBuilder b, long value) throws IOException {
b.value(decodeForSyntheticSource(value, scalingFactor));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -721,7 +721,7 @@ protected String contentType() {
}

public FieldMapper.Builder getMergeBuilder() {
return new Builder(simpleName(), builder.indexCreatedVersion, builder.analyzers.indexAnalyzers).init(this);
return new Builder(leafName(), builder.indexCreatedVersion, builder.analyzers.indexAnalyzers).init(this);
}

public static String getShingleFieldName(String parentField, int shingleSize) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,6 @@ protected String contentType() {

@Override
public FieldMapper.Builder getMergeBuilder() {
return new Builder(simpleName()).init(this);
return new Builder(leafName()).init(this);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ protected boolean supportsParsingObject() {

@Override
public void parse(DocumentParserContext context) throws IOException {
context.path().add(simpleName());
context.path().add(leafName());
XContentParser.Token token = context.parser().currentToken();
String name = null;
String parent = null;
Expand Down Expand Up @@ -329,7 +329,7 @@ protected void doXContentBody(XContentBuilder builder, Params params) throws IOE

@Override
public FieldMapper.Builder getMergeBuilder() {
return new Builder(simpleName()).init(this);
return new Builder(leafName()).init(this);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,8 +100,9 @@ public class PercolatorFieldMapper extends FieldMapper {

@Override
public FieldMapper.Builder getMergeBuilder() {
return new Builder(simpleName(), searchExecutionContext, mapUnmappedFieldsAsText, indexCreatedVersion, clusterTransportVersion)
.init(this);
return new Builder(leafName(), searchExecutionContext, mapUnmappedFieldsAsText, indexCreatedVersion, clusterTransportVersion).init(
this
);
}

static class Builder extends FieldMapper.Builder {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -508,7 +508,7 @@ protected String contentType() {

@Override
public FieldMapper.Builder getMergeBuilder() {
return new Builder(simpleName()).init(this);
return new Builder(leafName()).init(this);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -564,7 +564,7 @@ protected String contentType() {
@Override
public FieldMapper.Builder getMergeBuilder() {
return new Builder(
simpleName(),
leafName(),
builder.indexCreatedVersion,
builder.analyzers.indexAnalyzers,
builder.isSyntheticSourceEnabledViaIndexMode
Expand All @@ -584,7 +584,7 @@ public SourceLoader.SyntheticFieldLoader syntheticFieldLoader() {
);
}
if (fieldType.stored()) {
return new StringStoredFieldFieldLoader(name(), simpleName(), null) {
return new StringStoredFieldFieldLoader(name(), leafName(), null) {
@Override
protected void write(XContentBuilder b, Object value) throws IOException {
b.value((String) value);
Expand All @@ -594,7 +594,7 @@ protected void write(XContentBuilder b, Object value) throws IOException {

var kwd = TextFieldMapper.SyntheticSourceHelper.getKeywordFieldMapperForSyntheticSource(this);
if (kwd != null) {
return kwd.syntheticFieldLoader(simpleName());
return kwd.syntheticFieldLoader(leafName());
}

throw new IllegalArgumentException(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ protected Murmur3FieldMapper(String simpleName, MappedFieldType mappedFieldType,

@Override
public FieldMapper.Builder getMergeBuilder() {
return new Builder(simpleName()).init(this);
return new Builder(leafName()).init(this);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -859,7 +859,7 @@ protected String contentType() {

@Override
public SourceLoader.SyntheticFieldLoader syntheticFieldLoader() {
return new StringStoredFieldFieldLoader(name(), simpleName(), null) {
return new StringStoredFieldFieldLoader(name(), leafName(), null) {
@Override
protected void write(XContentBuilder b, Object value) throws IOException {
BytesRef ref = (BytesRef) value;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ public void indexValue(DocumentParserContext context, byte[] value) {

@Override
public FieldMapper.Builder getMergeBuilder() {
return new BinaryFieldMapper.Builder(simpleName(), isSyntheticSourceEnabledViaIndexMode).init(this);
return new BinaryFieldMapper.Builder(leafName(), isSyntheticSourceEnabledViaIndexMode).init(this);
}

@Override
Expand Down Expand Up @@ -229,10 +229,10 @@ protected void writeValue(XContentBuilder b, BytesRef value) throws IOException
case 0:
return;
case 1:
b.field(simpleName());
b.field(leafName());
break;
default:
b.startArray(simpleName());
b.startArray(leafName());
}

for (int i = 0; i < count; i++) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -480,7 +480,7 @@ protected void indexScriptValues(

@Override
public FieldMapper.Builder getMergeBuilder() {
return new Builder(simpleName(), scriptCompiler, ignoreMalformedByDefault, indexCreatedVersion).init(this);
return new Builder(leafName(), scriptCompiler, ignoreMalformedByDefault, indexCreatedVersion).init(this);
}

@Override
Expand Down Expand Up @@ -513,7 +513,7 @@ public SourceLoader.SyntheticFieldLoader syntheticFieldLoader() {
"field [" + name() + "] of type [" + typeName() + "] doesn't support synthetic source because it declares copy_to"
);
}
return new SortedNumericDocValuesSyntheticFieldLoader(name(), simpleName(), ignoreMalformed.value()) {
return new SortedNumericDocValuesSyntheticFieldLoader(name(), leafName(), ignoreMalformed.value()) {
@Override
protected void writeValue(XContentBuilder b, long value) throws IOException {
b.value(value == 1);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ public class CompletionFieldMapper extends FieldMapper {

@Override
public FieldMapper.Builder getMergeBuilder() {
return new Builder(simpleName(), builder.defaultAnalyzer, builder.indexVersionCreated).init(this);
return new Builder(leafName(), builder.defaultAnalyzer, builder.indexVersionCreated).init(this);
}

public static class Defaults {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -898,7 +898,7 @@ private DateFieldMapper(

@Override
public FieldMapper.Builder getMergeBuilder() {
return new Builder(simpleName(), resolution, null, scriptCompiler, ignoreMalformedByDefault, indexCreatedVersion).init(this);
return new Builder(leafName(), resolution, null, scriptCompiler, ignoreMalformedByDefault, indexCreatedVersion).init(this);
}

@Override
Expand Down Expand Up @@ -997,7 +997,7 @@ public SourceLoader.SyntheticFieldLoader syntheticFieldLoader() {
"field [" + name() + "] of type [" + typeName() + "] doesn't support synthetic source because it declares copy_to"
);
}
return new SortedNumericDocValuesSyntheticFieldLoader(name(), simpleName(), ignoreMalformed) {
return new SortedNumericDocValuesSyntheticFieldLoader(name(), leafName(), ignoreMalformed) {
@Override
protected void writeValue(XContentBuilder b, long value) throws IOException {
b.value(fieldType().format(value, fieldType().dateTimeFormatter()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,7 @@ static void parseObjectOrNested(DocumentParserContext context) throws IOExceptio
context.addIgnoredField(
new IgnoredSourceFieldMapper.NameValue(
context.parent().name(),
context.parent().fullPath().indexOf(context.parent().simpleName()),
context.parent().fullPath().indexOf(context.parent().leafName()),
XContentDataHelper.encodeXContentBuilder(tuple.v2()),
context.doc()
)
Expand Down Expand Up @@ -429,7 +429,7 @@ static void parseObjectOrField(DocumentParserContext context, Mapper mapper) thr
} else if (mapper instanceof FieldMapper fieldMapper) {
if (shouldFlattenObject(context, fieldMapper)) {
// we pass the mapper's simpleName as parentName to the new DocumentParserContext
String currentFieldName = fieldMapper.simpleName();
String currentFieldName = fieldMapper.leafName();
context.path().remove();
parseObjectOrNested(context.createFlattenContext(currentFieldName));
context.path().add(currentFieldName);
Expand Down Expand Up @@ -562,7 +562,7 @@ private static void parseObjectDynamic(DocumentParserContext context, String cur
throw new DocumentParsingException(
context.parser().getTokenLocation(),
"Tried to add nested object ["
+ dynamicObjectMapper.simpleName()
+ dynamicObjectMapper.leafName()
+ "] to object ["
+ context.parent().name()
+ "] which does not support subobjects"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ public Iterator<Mapper> iterator() {

@Override
public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
return builder.startObject(simpleName()).field("type", CONTENT_TYPE).field(Names.PATH, path).endObject();
return builder.startObject(leafName()).field("type", CONTENT_TYPE).field(Names.PATH, path).endObject();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ public void parse(DocumentParserContext context) throws IOException {
}

private void doParseMultiFields(DocumentParserContext context) throws IOException {
context.path().add(simpleName());
context.path().add(leafName());
for (FieldMapper mapper : multiFields.mappers) {
mapper.parse(context);
}
Expand Down Expand Up @@ -416,7 +416,7 @@ protected void checkIncomingMergeType(FieldMapper mergeWith) {

@Override
public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
builder.startObject(simpleName());
builder.startObject(leafName());
doXContentBody(builder, params);
return builder.endObject();
}
Expand Down Expand Up @@ -526,7 +526,7 @@ public Builder add(FieldMapper.Builder builder) {
}

private void add(FieldMapper mapper) {
mapperBuilders.put(mapper.simpleName(), context -> mapper);
mapperBuilders.put(mapper.leafName(), context -> mapper);

if (mapper instanceof KeywordFieldMapper kwd) {
if (kwd.hasNormalizer() == false && (kwd.fieldType().hasDocValues() || kwd.fieldType().isStored())) {
Expand All @@ -536,12 +536,12 @@ private void add(FieldMapper mapper) {
}

private void update(FieldMapper toMerge, MapperMergeContext context) {
if (mapperBuilders.containsKey(toMerge.simpleName()) == false) {
if (mapperBuilders.containsKey(toMerge.leafName()) == false) {
if (context.decrementFieldBudgetIfPossible(toMerge.getTotalFieldsCount())) {
add(toMerge);
}
} else {
FieldMapper existing = mapperBuilders.get(toMerge.simpleName()).apply(context.getMapperBuilderContext());
FieldMapper existing = mapperBuilders.get(toMerge.leafName()).apply(context.getMapperBuilderContext());
add(existing.merge(toMerge, context));
}
}
Expand Down Expand Up @@ -584,7 +584,7 @@ public void parse(FieldMapper mainField, DocumentParserContext context, Supplier
if (mappers.length == 0) {
return;
}
context.path().add(mainField.simpleName());
context.path().add(mainField.leafName());
for (FieldMapper mapper : mappers) {
mapper.parse(multiFieldContextSupplier.get());
}
Expand Down Expand Up @@ -1314,7 +1314,7 @@ protected void merge(FieldMapper in, Conflicts conflicts, MapperMergeContext map
for (Parameter<?> param : getParameters()) {
param.merge(in, conflicts);
}
MapperMergeContext childContext = mapperMergeContext.createChildContext(in.simpleName(), null);
MapperMergeContext childContext = mapperMergeContext.createChildContext(in.leafName(), null);
for (FieldMapper newSubField : in.multiFields.mappers) {
multiFieldsBuilder.update(newSubField, childContext);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ final class FieldTypeLookup {
for (PassThroughObjectMapper passThroughMapper : passThroughMappers) {
for (Mapper subfield : passThroughMapper.mappers.values()) {
if (subfield instanceof FieldMapper fieldMapper) {
String name = fieldMapper.simpleName();
String name = fieldMapper.leafName();
// Check for conflict between PassThroughObjectMapper subfields.
PassThroughObjectMapper conflict = passThroughFieldAliases.put(name, passThroughMapper);
if (conflict != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -284,7 +284,7 @@ public GeoPointFieldMapper(String simpleName, MappedFieldType mappedFieldType, P
@Override
public FieldMapper.Builder getMergeBuilder() {
return new Builder(
simpleName(),
leafName(),
builder.scriptCompiler,
builder.ignoreMalformed.getDefaultValue().value(),
indexCreatedVersion,
Expand Down Expand Up @@ -636,7 +636,7 @@ public SourceLoader.SyntheticFieldLoader syntheticFieldLoader() {
"field [" + name() + "] of type [" + typeName() + "] doesn't support synthetic source because it declares copy_to"
);
}
return new SortedNumericDocValuesSyntheticFieldLoader(name(), simpleName(), ignoreMalformed()) {
return new SortedNumericDocValuesSyntheticFieldLoader(name(), leafName(), ignoreMalformed()) {
final GeoPoint point = new GeoPoint();

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ public GeoShapeFieldMapper(

@Override
public FieldMapper.Builder getMergeBuilder() {
return new Builder(simpleName(), builder.ignoreMalformed.getDefaultValue().value(), builder.coerce.getDefaultValue().value()).init(
return new Builder(leafName(), builder.ignoreMalformed.getDefaultValue().value(), builder.coerce.getDefaultValue().value()).init(
this
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -589,7 +589,7 @@ protected void indexScriptValues(

@Override
public FieldMapper.Builder getMergeBuilder() {
return new Builder(simpleName(), scriptCompiler, ignoreMalformedByDefault, indexCreatedVersion).dimension(dimension).init(this);
return new Builder(leafName(), scriptCompiler, ignoreMalformedByDefault, indexCreatedVersion).dimension(dimension).init(this);
}

@Override
Expand Down Expand Up @@ -621,7 +621,7 @@ public SourceLoader.SyntheticFieldLoader syntheticFieldLoader() {
"field [" + name() + "] of type [" + typeName() + "] doesn't support synthetic source because it declares copy_to"
);
}
return new SortedSetDocValuesSyntheticFieldLoader(name(), simpleName(), null, ignoreMalformed) {
return new SortedSetDocValuesSyntheticFieldLoader(name(), leafName(), null, ignoreMalformed) {
@Override
protected BytesRef convert(BytesRef value) {
byte[] bytes = Arrays.copyOfRange(value.bytes, value.offset, value.offset + value.length);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -995,8 +995,7 @@ public Map<String, NamedAnalyzer> indexAnalyzers() {

@Override
public FieldMapper.Builder getMergeBuilder() {
return new Builder(simpleName(), indexAnalyzers, scriptCompiler, indexCreatedVersion).dimension(fieldType().isDimension())
.init(this);
return new Builder(leafName(), indexAnalyzers, scriptCompiler, indexCreatedVersion).dimension(fieldType().isDimension()).init(this);
}

@Override
Expand Down Expand Up @@ -1028,7 +1027,7 @@ protected SyntheticSourceMode syntheticSourceMode() {

@Override
public SourceLoader.SyntheticFieldLoader syntheticFieldLoader() {
return syntheticFieldLoader(simpleName());
return syntheticFieldLoader(leafName());
}

public SourceLoader.SyntheticFieldLoader syntheticFieldLoader(String simpleName) {
Expand Down
Loading

0 comments on commit 54e7b4d

Please sign in to comment.