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
|
@ -205,9 +205,8 @@ QueryResult Query::execute () {
|
|||
while (nullptr != (value = root->getOne())) {
|
||||
AqlValue val = value->getValue(0, 0);
|
||||
TRI_ASSERT(! val.isEmpty());
|
||||
|
||||
// TODO: remove debug output
|
||||
std::cout << val.toString(value->getDocumentCollections()[0]) << std::endl;
|
||||
auto doc = value->getDocumentCollection(0);
|
||||
json.add(val.toJson(doc));
|
||||
delete value;
|
||||
}
|
||||
|
||||
|
@ -234,8 +233,8 @@ QueryResult Query::execute () {
|
|||
trx.commit();
|
||||
|
||||
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;
|
||||
}
|
||||
catch (triagens::arango::Exception const& ex) {
|
||||
|
|
|
@ -190,7 +190,8 @@ namespace triagens {
|
|||
id.push_back('/');
|
||||
id += std::string(key);
|
||||
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));
|
||||
|
||||
return json.toString();
|
||||
|
@ -213,6 +214,51 @@ namespace triagens {
|
|||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @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
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
Loading…
Reference in New Issue