use of org.elasticsearch.index.mapper.Mapper in project crate by crate.
the class TransportShardUpsertActionTest method testValidateMapping.
@Test
public void testValidateMapping() throws Exception {
// Create valid nested mapping with underscore.
Settings settings = Settings.builder().put(IndexMetadata.SETTING_VERSION_CREATED, Version.CURRENT).build();
Mapper.BuilderContext builderContext = new Mapper.BuilderContext(settings, new ContentPath());
Mapper outerMapper = new ObjectMapper.Builder("valid").add(new ObjectMapper.Builder("_invalid")).build(builderContext);
TransportShardUpsertAction.validateMapping(Arrays.asList(outerMapper).iterator(), false);
// Create invalid mapping
expectedException.expect(InvalidColumnNameException.class);
expectedException.expectMessage("system column pattern");
outerMapper = new ObjectMapper.Builder("_invalid").build(builderContext);
TransportShardUpsertAction.validateMapping(Arrays.asList(outerMapper).iterator(), false);
}
use of org.elasticsearch.index.mapper.Mapper in project crate by crate.
the class TransportShardUpsertActionTest method testValidateMapping.
@Test
public void testValidateMapping() throws Exception {
/**
* create a mapping which contains an invalid column name
* {
* "valid": {},
* "_invalid": {}
* }
*/
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("Column name must not start with '_'");
Mapper.BuilderContext builderContext = new Mapper.BuilderContext(null, new ContentPath());
Mapper.Builder validInnerMapper = new ObjectMapper.Builder("valid");
Mapper.Builder invalidInnerMapper = new ObjectMapper.Builder("_invalid");
Mapper outerMapper = new ObjectMapper.Builder("outer").add(validInnerMapper).add(invalidInnerMapper).build(builderContext);
TransportShardUpsertAction.validateMapping(Arrays.asList(outerMapper).iterator());
}
use of org.elasticsearch.index.mapper.Mapper in project crate by crate.
the class TransportShardUpsertAction method validateMapping.
@VisibleForTesting
static void validateMapping(Iterator<Mapper> mappers) {
while (mappers.hasNext()) {
Mapper mapper = mappers.next();
AnalyzedColumnDefinition.validateName(mapper.simpleName());
validateMapping(mapper.iterator());
}
}
use of org.elasticsearch.index.mapper.Mapper in project crate by crate.
the class TransportShardAction method validateMapping.
@VisibleForTesting
public static void validateMapping(Iterator<Mapper> mappers, boolean nested) {
while (mappers.hasNext()) {
Mapper mapper = mappers.next();
if (nested) {
ColumnIdent.validateObjectKey(mapper.simpleName());
} else {
ColumnIdent.validateColumnName(mapper.simpleName());
}
validateMapping(mapper.iterator(), true);
}
}
Aggregations