1
0
Fork 0

Resolving externals before using them with VelocyPackHelper::VPackHash (#3907)

This commit is contained in:
Jan 2017-12-07 10:35:25 +01:00 committed by Frank Celler
parent 1789977d51
commit 291df05e08
1 changed files with 4 additions and 3 deletions

View File

@ -1937,9 +1937,9 @@ AqlValue Functions::Unique(arangodb::aql::Query* query,
values(512, arangodb::basics::VelocyPackHelper::VPackHash(), values(512, arangodb::basics::VelocyPackHelper::VPackHash(),
arangodb::basics::VelocyPackHelper::VPackEqual(options)); arangodb::basics::VelocyPackHelper::VPackEqual(options));
for (auto const& s : VPackArrayIterator(slice)) { for (VPackSlice s : VPackArrayIterator(slice)) {
if (!s.isNone()) { if (!s.isNone()) {
values.emplace(s); values.emplace(s.resolveExternal());
} }
} }
@ -2053,7 +2053,8 @@ AqlValue Functions::UnionDistinct(arangodb::aql::Query* query,
materializers.emplace_back(trx); materializers.emplace_back(trx);
VPackSlice slice = materializers.back().slice(value, false); VPackSlice slice = materializers.back().slice(value, false);
for (auto const& v : VPackArrayIterator(slice)) { for (VPackSlice v : VPackArrayIterator(slice)) {
v = v.resolveExternal();
if (values.find(v) == values.end()) { if (values.find(v) == values.end()) {
TRI_IF_FAILURE("AqlFunctions::OutOfMemory1") { TRI_IF_FAILURE("AqlFunctions::OutOfMemory1") {
THROW_ARANGO_EXCEPTION(TRI_ERROR_DEBUG); THROW_ARANGO_EXCEPTION(TRI_ERROR_DEBUG);