1
0
Fork 0

Fix signature of SortPlan nodes.

This commit is contained in:
Max Neunhoeffer 2014-07-30 11:47:45 +02:00
parent 14c465ec4d
commit 92bd4b75d2
2 changed files with 24 additions and 16 deletions

View File

@ -297,13 +297,21 @@ Json SortPlan::toJson (TRI_memory_zone_t* zone) const {
return json;
}
try {
Json vec(Json::List,_sortAttributes.size());
for (auto it = _sortAttributes.begin(); it != _sortAttributes.end(); ++it) {
Json numbers(Json::List, _varNumbers.size());
for (auto it = _varNumbers.begin(); it != _varNumbers.end(); ++it) {
numbers(Json(static_cast<double>(*it)));
}
Json names(Json::List, _varNames.size());
for (auto it = _varNames.begin(); it != _varNames.end(); ++it) {
names(Json(*it));
}
Json vec(Json::List, _sortAscending.size());
for (auto it = _sortAscending.begin(); it != _sortAscending.end(); ++it) {
vec(Json(*it));
}
json("varNumber", Json(static_cast<double>(_varNumber)))
("varName", Json(_varName))
("sortAttributes", vec);
json("varNumbers", numbers)
("varNames", names)
("sortAscending", vec);
}
catch (std::exception& e) {
return Json();

View File

@ -765,11 +765,11 @@ namespace triagens {
public:
SortPlan (VariableId varNumber,
std::string varName,
std::vector<std::string> sortAttributes)
: ExecutionPlan(), _varNumber(varNumber), _varName(varName),
_sortAttributes(sortAttributes) {
SortPlan (std::vector<VariableId> varNumbers,
std::vector<std::string> varNames,
std::vector<bool> sortAscending)
: ExecutionPlan(), _varNumbers(varNumbers), _varNames(varNames),
_sortAscending(sortAscending) {
}
////////////////////////////////////////////////////////////////////////////////
@ -800,7 +800,7 @@ namespace triagens {
////////////////////////////////////////////////////////////////////////////////
virtual ExecutionPlan* clone () const {
auto c = new SortPlan(_varNumber, _varName, _sortAttributes);
auto c = new SortPlan(_varNumbers, _varNames, _sortAscending);
cloneDependencies(c);
return static_cast<ExecutionPlan*>(c);
}
@ -812,22 +812,22 @@ namespace triagens {
private:
////////////////////////////////////////////////////////////////////////////////
/// @brief _varNumber, input variable
/// @brief _varNumbers, input variables for sorting
////////////////////////////////////////////////////////////////////////////////
VariableId _varNumber;
std::vector<VariableId> _varNumbers;
////////////////////////////////////////////////////////////////////////////////
/// @brief _varName, name of variable to read from
/// @brief _varNames, name of variables for sorting
////////////////////////////////////////////////////////////////////////////////
std::string _varName;
std::vector<std::string> _varNames;
////////////////////////////////////////////////////////////////////////////////
/// @brief vector of attributes to sort by
////////////////////////////////////////////////////////////////////////////////
std::vector<std::string> _sortAttributes;
std::vector<bool> _sortAscending;
};