@Override public GetQuery visitGetQuery(GraqlParser.GetQueryContext ctx) { Match match = visitMatchPart(ctx.matchPart()); if (ctx.variables() != null) { Set<Var> vars = ctx.variables().VARIABLE().stream().map(this::getVariable).collect(toSet()); if (!vars.isEmpty()) return match.get(vars); } return match.get(); }
private Stream<ConceptMap> runMatchInsert(Match match, Collection<VarPatternAdmin> varPatterns) { Set<Var> varsInMatch = match.admin().getSelectedNames(); Set<Var> varsInInsert = varPatterns.stream().map(VarPatternAdmin::var).collect(toImmutableSet()); Set<Var> projectedVars = Sets.intersection(varsInMatch, varsInInsert); Stream<ConceptMap> answers = match.get(projectedVars).stream(); return answers.map(answer -> QueryOperationExecutor.insertAll(varPatterns, tx, answer)).collect(toList()).stream(); }
public GetQuery getQuery() { return tx.graql().infer(false).match(getPattern()).get(); }
/** * Get the resource edge id if there is one. Return null if not. */ public static ConceptId getResourceEdgeId(GraknTx graph, ConceptId conceptId1, ConceptId conceptId2) { if (mayHaveResourceEdge(graph, conceptId1, conceptId2)) { Optional<Concept> firstConcept = graph.graql().match( var("x").id(conceptId1), var("y").id(conceptId2), var("z").rel(var("x")).rel(var("y"))) .get("z") .stream().map(answer -> answer.get("z")) .findFirst(); if (firstConcept.isPresent()) { return firstConcept.get().id(); } } return null; }