From deb0ff11102c111fe81cea22aa8958fe88543b51 Mon Sep 17 00:00:00 2001 From: jsteemann Date: Tue, 21 Feb 2017 13:43:07 +0100 Subject: [PATCH] fix stringification of keys with _id type --- arangod/Aql/Functions.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/arangod/Aql/Functions.cpp b/arangod/Aql/Functions.cpp index 489390ed56..fb0c9e1592 100644 --- a/arangod/Aql/Functions.cpp +++ b/arangod/Aql/Functions.cpp @@ -411,13 +411,11 @@ void Functions::Stringify(transaction::Methods* trx, return; } - if (slice.isObject() || slice.isArray()) { - VPackDumper dumper(&buffer, trx->transactionContextPtr()->getVPackOptions()); - dumper.dump(slice); - return; - } - - VPackDumper dumper(&buffer); + VPackOptions* options = trx->transactionContextPtr()->getVPackOptionsForDump(); + VPackOptions adjustedOptions = *options; + adjustedOptions.escapeUnicode = false; + adjustedOptions.escapeForwardSlashes = false; + VPackDumper dumper(&buffer, &adjustedOptions); dumper.dump(slice); } @@ -2270,7 +2268,7 @@ AqlValue Functions::Zip(arangodb::aql::Query* query, for (VPackValueLength i = 0; i < n; ++i) { buffer->reset(); Stringify(trx, adapter, keysSlice.at(i)); - builder->add(std::string(buffer->c_str(), buffer->length()), valuesSlice.at(i)); + builder->add(buffer->c_str(), buffer->length(), valuesSlice.at(i)); } builder->close(); return AqlValue(builder.get());