match vertex by id, label and from main vertex store

This commit is contained in:
Marko Budiselic
2016-08-30 06:26:27 +01:00
parent 0f7be340fa
commit b5db8d8d1e
5 changed files with 15 additions and 8 deletions

View File

@@ -38,6 +38,7 @@ auto return_query_action =
code += code_line(code::write_all_edges, entity);
}
// the client will receive entities from label index
if (cypher_data.source(entity) == EntitySource::LabelIndex)
{
if (cypher_data.type(entity) == EntityType::Node) {
@@ -47,7 +48,6 @@ auto return_query_action =
code += code_line(code::fine_and_write_vertices_by_label,
entity, label);
}
// TODO: code_line
}
}
else if (element.is_projection())

View File

@@ -36,7 +36,8 @@ public:
} catch (QueryEngineException &e) {
// in this case something fatal went wrong
logger.error("QueryEngineException: {}", std::string(e.what()));
return false;
// return false;
throw e;
}
}

View File

@@ -74,12 +74,12 @@ const std::string write_all_vertices =
const std::string fine_and_write_vertices_by_label =
"auto &label = t.label_find_or_create(\"{1}\");\n"
" stream.write_field(\"{0}\");\n"
" label.index().for_range(t).for_all([&](auto vertex) {\n"
" label.index().for_range(t)->for_all([&](auto vertex) {{\n"
" stream.write_record();\n"
" stream.write_list_header(1);\n"
" stream.write(vertex);\n"
" stream.chunk();\n"
" });\n"
" }});\n"
" stream.write_meta(\"rw\");\n";
const std::string write_all_edges =

View File

@@ -3,12 +3,12 @@
#include <string>
#include "cypher/visitor/traverser.hpp"
#include "query_engine/code_generator/cpp_generator.hpp"
#include "query_engine/code_generator/entity_search.hpp"
#include "query_engine/code_generator/structures.hpp"
#include "query_engine/exceptions/exceptions.hpp"
#include "query_engine/traverser/code.hpp"
#include "logging/default.hpp"
struct SetElementState
{
@@ -99,7 +99,11 @@ private:
generator.clear();
}
Logger logger;
public:
CppTraverser() : logger(logging::log->logger("CppTraverser")) {}
void semantic_check() const
{
if (!has_return)