1
0
Fork 0

Merge branch 'devel' of github.com:arangodb/arangodb into devel

This commit is contained in:
jsteemann 2019-05-07 15:20:21 +02:00
commit c234bf1304
2 changed files with 18 additions and 0 deletions

View File

@ -871,6 +871,16 @@ arangodb::Result IResearchAnalyzerFeature::emplaceAnalyzer( // emplace
irs::string_ref const& properties, // analyzer properties
irs::flags const& features // analyzer features
) {
// validate analyzer name
auto split = splitAnalyzerName(name);
if (!TRI_vocbase_t::IsAllowedName(false, arangodb::velocypack::StringRef(split.second.c_str(), split.second.size()))) {
return arangodb::Result( // result
TRI_ERROR_BAD_PARAMETER, // code
std::string("invalid characters in analyzer name '") + std::string(split.second) + "'"
);
}
// validate that features are supported by arangod an ensure that their
// dependencies are met
for(auto& feature: features) {

View File

@ -583,6 +583,14 @@ SECTION("test_emplace") {
CHECK((true == !feature.get(arangodb::StaticStrings::SystemDatabase + "::test_analyzer11")));
}
// add invalid (name has invalid char)
{
arangodb::iresearch::IResearchAnalyzerFeature::EmplaceResult result;
arangodb::iresearch::IResearchAnalyzerFeature feature(s.server);
CHECK((false == feature.emplace(result, arangodb::StaticStrings::SystemDatabase + "::test_analyzer12+", "TestAnalyzer", "abc").ok()));
CHECK((true == !feature.get(arangodb::StaticStrings::SystemDatabase + "::test_analyzer12+")));
}
// add static analyzer
{
arangodb::iresearch::IResearchAnalyzerFeature::EmplaceResult result;