mirror of https://gitee.com/bigwinds/arangodb
Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
This commit is contained in:
commit
ccbcade0eb
|
@ -201,13 +201,12 @@ QueryResult Query::execute () {
|
||||||
root->execute();
|
root->execute();
|
||||||
|
|
||||||
AqlItemBlock* value;
|
AqlItemBlock* value;
|
||||||
|
|
||||||
while (nullptr != (value = root->getOne())) {
|
while (nullptr != (value = root->getOne())) {
|
||||||
AqlValue val = value->getValue(0, 0);
|
AqlValue val = value->getValue(0, 0);
|
||||||
TRI_ASSERT(! val.isEmpty());
|
TRI_ASSERT(! val.isEmpty());
|
||||||
|
auto doc = value->getDocumentCollection(0);
|
||||||
// TODO: remove debug output
|
json.add(val.toJson(doc));
|
||||||
std::cout << val.toString(value->getDocumentCollections()[0]) << std::endl;
|
|
||||||
delete value;
|
delete value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -234,8 +233,8 @@ QueryResult Query::execute () {
|
||||||
trx.commit();
|
trx.commit();
|
||||||
|
|
||||||
QueryResult result(TRI_ERROR_NO_ERROR);
|
QueryResult result(TRI_ERROR_NO_ERROR);
|
||||||
result.json = parser.ast()->toJson(TRI_UNKNOWN_MEM_ZONE);
|
//result.json = parser.ast()->toJson(TRI_UNKNOWN_MEM_ZONE);
|
||||||
|
result.json = json;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
catch (triagens::arango::Exception const& ex) {
|
catch (triagens::arango::Exception const& ex) {
|
||||||
|
|
|
@ -190,7 +190,8 @@ namespace triagens {
|
||||||
id.push_back('/');
|
id.push_back('/');
|
||||||
id += std::string(key);
|
id += std::string(key);
|
||||||
json("_id", triagens::basics::Json(id));
|
json("_id", triagens::basics::Json(id));
|
||||||
json("_rev", triagens::basics::Json(std::to_string( 17 ))); // TRI_EXTRACT_MARKER_RID)));
|
json("_rev", triagens::basics::Json(std::to_string(
|
||||||
|
TRI_EXTRACT_MARKER_RID(_marker) )));
|
||||||
json("_key", triagens::basics::Json(key));
|
json("_key", triagens::basics::Json(key));
|
||||||
|
|
||||||
return json.toString();
|
return json.toString();
|
||||||
|
@ -212,6 +213,51 @@ namespace triagens {
|
||||||
return std::string("");
|
return std::string("");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// @brief toJson method
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
triagens::basics::Json toJson (TRI_document_collection_t const* document) {
|
||||||
|
switch (_type) {
|
||||||
|
case JSON: {
|
||||||
|
return *_json;
|
||||||
|
}
|
||||||
|
|
||||||
|
case SHAPED: {
|
||||||
|
TRI_shaper_t* shaper = document->getShaper();
|
||||||
|
TRI_shaped_json_t shaped;
|
||||||
|
TRI_EXTRACT_SHAPED_JSON_MARKER(shaped, _marker);
|
||||||
|
triagens::basics::Json json(shaper->_memoryZone,
|
||||||
|
TRI_JsonShapedJson(shaper, &shaped));
|
||||||
|
|
||||||
|
char const* key = TRI_EXTRACT_MARKER_KEY(_marker);
|
||||||
|
std::string id(document->_info._name);
|
||||||
|
id.push_back('/');
|
||||||
|
id += std::string(key);
|
||||||
|
json("_id", triagens::basics::Json(id));
|
||||||
|
json("_rev", triagens::basics::Json(std::to_string(
|
||||||
|
TRI_EXTRACT_MARKER_RID(_marker) )));
|
||||||
|
json("_key", triagens::basics::Json(key));
|
||||||
|
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|
||||||
|
case DOCVEC: {
|
||||||
|
THROW_ARANGO_EXCEPTION(TRI_ERROR_NOT_IMPLEMENTED);
|
||||||
|
}
|
||||||
|
|
||||||
|
case RANGE: {
|
||||||
|
THROW_ARANGO_EXCEPTION(TRI_ERROR_NOT_IMPLEMENTED);
|
||||||
|
}
|
||||||
|
|
||||||
|
case EMPTY: {
|
||||||
|
return triagens::basics::Json();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
THROW_ARANGO_EXCEPTION(TRI_ERROR_INTERNAL);
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
/// @brief a quick method to decide whether a value is empty
|
/// @brief a quick method to decide whether a value is empty
|
||||||
|
|
Loading…
Reference in New Issue