Search in sources :

Example 1 with TypeQLInsert

use of com.vaticle.typeql.lang.query.TypeQLInsert in project grakn by graknlabs.

the class QueryTest method test_query_insert.

@Test
public void test_query_insert() throws IOException {
    Util.resetDirectory(dataDir);
    try (TypeDB.DatabaseManager typedb = CoreDatabaseManager.open(options)) {
        typedb.create(database);
        try (TypeDB.Session session = typedb.session(database, Arguments.Session.Type.SCHEMA)) {
            try (TypeDB.Transaction transaction = session.transaction(Arguments.Transaction.Type.WRITE)) {
                TypeQLDefine query = TypeQL.parseQuery(new String(Files.readAllBytes(Paths.get("test/integration/schema.tql")), UTF_8));
                transaction.query().define(query);
                transaction.commit();
            }
        }
        try (TypeDB.Session session = typedb.session(database, Arguments.Session.Type.DATA)) {
            try (TypeDB.Transaction transaction = session.transaction(Arguments.Transaction.Type.WRITE)) {
                String queryString = "insert " + "$n 'vaticle' isa name; " + "$o isa organisation, has name $n; " + "$t isa team, has name 'engineers', has symbol 'vaticle/engineers'; " + "$u isa user, has name 'butler', has email 'butler@vaticle.com'; " + "($o, $t) isa org-team; " + "($o, $u) isa org-member; " + "($t, $u) isa team-member;";
                TypeQLInsert query = TypeQL.parseQuery(queryString);
                transaction.query().insert(query);
                transaction.commit();
            }
            try (TypeDB.Transaction transaction = session.transaction(Arguments.Transaction.Type.READ)) {
                Attribute.String name_vaticle = transaction.concepts().getAttributeType("name").asString().get("vaticle");
                Attribute.String symbol_engineers = transaction.concepts().getAttributeType("symbol").asString().get("vaticle/engineers");
                Attribute.String email_butler = transaction.concepts().getAttributeType("email").asString().get("butler@vaticle.com");
                assertNotNulls(name_vaticle, symbol_engineers, email_butler);
                Entity organisation_vaticle = name_vaticle.getOwners().first().get().asEntity();
                Entity team_engineers = symbol_engineers.getOwners().first().get().asEntity();
                Entity user_butler = email_butler.getOwners().first().get().asEntity();
                assertNotNulls(organisation_vaticle, team_engineers, user_butler);
                assertEquals(organisation_vaticle.getRelations("org-team:org").first().get().getPlayers("team").first().get(), team_engineers);
                assertEquals(organisation_vaticle.getRelations("org-member:org").first().get().getPlayers("member").first().get(), user_butler);
                assertEquals(team_engineers.getRelations("team-member:team").first().get().getPlayers("member").first().get(), user_butler);
            }
        }
    }
}
Also used : Entity(com.vaticle.typedb.core.concept.thing.Entity) TypeQLDefine(com.vaticle.typeql.lang.query.TypeQLDefine) Attribute(com.vaticle.typedb.core.concept.thing.Attribute) TypeDB(com.vaticle.typedb.core.TypeDB) TypeQLInsert(com.vaticle.typeql.lang.query.TypeQLInsert) Test(org.junit.Test)

Example 2 with TypeQLInsert

use of com.vaticle.typeql.lang.query.TypeQLInsert in project grakn by graknlabs.

the class TypeQLSteps method typeql_insert.

@Given("typeql insert")
public void typeql_insert(String insertQueryStatements) {
    TypeQLInsert typeQLQuery = TypeQL.parseQuery(String.join("\n", insertQueryStatements)).asInsert();
    tx().query().insert(typeQLQuery);
}
Also used : TypeQLInsert(com.vaticle.typeql.lang.query.TypeQLInsert) Given(io.cucumber.java.en.Given)

Example 3 with TypeQLInsert

use of com.vaticle.typeql.lang.query.TypeQLInsert in project grakn by graknlabs.

the class QueryService method insert.

private void insert(String queryStr, Options.Query options, UUID reqID) {
    TypeQLInsert query = TypeQL.parseQuery(queryStr).asInsert();
    Context.Query context = new Context.Query(transactionSvc.context(), options.query(query), query);
    FunctionalIterator<ConceptMap> answers = queryMgr.insert(query, context);
    transactionSvc.stream(answers, reqID, context.options(), a -> insertResPart(reqID, a));
}
Also used : Context(com.vaticle.typedb.core.common.parameters.Context) TypeQLInsert(com.vaticle.typeql.lang.query.TypeQLInsert) ConceptMap(com.vaticle.typedb.core.concept.answer.ConceptMap)

Example 4 with TypeQLInsert

use of com.vaticle.typeql.lang.query.TypeQLInsert in project grakn by graknlabs.

the class TypeQLSteps method get_answers_of_typeql_insert.

@When("get answers of typeql insert")
public void get_answers_of_typeql_insert(String typeQLQueryStatements) {
    TypeQLInsert typeQLQuery = TypeQL.parseQuery(String.join("\n", typeQLQueryStatements)).asInsert();
    clearAnswers();
    answers = tx().query().insert(typeQLQuery).toList();
}
Also used : TypeQLInsert(com.vaticle.typeql.lang.query.TypeQLInsert) When(io.cucumber.java.en.When)

Example 5 with TypeQLInsert

use of com.vaticle.typeql.lang.query.TypeQLInsert in project grakn by graknlabs.

the class QueryTest method test_query_delete.

@Test
public void test_query_delete() throws IOException {
    Util.resetDirectory(dataDir);
    try (TypeDB.DatabaseManager typedb = CoreDatabaseManager.open(options)) {
        typedb.create(database);
        try (TypeDB.Session session = typedb.session(database, Arguments.Session.Type.SCHEMA)) {
            try (TypeDB.Transaction transaction = session.transaction(Arguments.Transaction.Type.WRITE)) {
                TypeQLDefine query = TypeQL.parseQuery(new String(Files.readAllBytes(Paths.get("test/integration/schema.tql")), UTF_8));
                transaction.query().define(query);
                transaction.commit();
            }
        }
        try (TypeDB.Session session = typedb.session(database, Arguments.Session.Type.DATA)) {
            try (TypeDB.Transaction transaction = session.transaction(Arguments.Transaction.Type.WRITE)) {
                String insertString = "insert " + "$o isa organisation, has name 'vaticle'; " + "$t isa team, has name 'engineers', has symbol 'vaticle/engineers'; " + "$u isa user, has name 'butler', has email 'butler@vaticle.com'; " + "($o, $t) isa org-team; " + "($o, $u) isa org-member; " + "($t, $u) isa team-member;";
                TypeQLInsert insertQuery = TypeQL.parseQuery(insertString);
                transaction.query().insert(insertQuery);
                transaction.commit();
            }
            try (TypeDB.Transaction transaction = session.transaction(Arguments.Transaction.Type.WRITE)) {
                String deleteString = "match $x isa thing; delete $x isa thing;";
                TypeQLDelete deleteQuery = TypeQL.parseQuery(deleteString);
                transaction.query().delete(deleteQuery);
                transaction.commit();
            }
            try (TypeDB.Transaction transaction = session.transaction(Arguments.Transaction.Type.READ)) {
                String matchString = "match $x isa thing;";
                TypeQLMatch matchQuery = TypeQL.parseQuery(matchString);
                FunctionalIterator<ConceptMap> answers = transaction.query().match(matchQuery);
                assertFalse(answers.hasNext());
            }
        }
    }
}
Also used : TypeQLDefine(com.vaticle.typeql.lang.query.TypeQLDefine) TypeQLDelete(com.vaticle.typeql.lang.query.TypeQLDelete) TypeDB(com.vaticle.typedb.core.TypeDB) TypeQLInsert(com.vaticle.typeql.lang.query.TypeQLInsert) TypeQLMatch(com.vaticle.typeql.lang.query.TypeQLMatch) ConceptMap(com.vaticle.typedb.core.concept.answer.ConceptMap) Test(org.junit.Test)

Aggregations

TypeQLInsert (com.vaticle.typeql.lang.query.TypeQLInsert)6 TypeDB (com.vaticle.typedb.core.TypeDB)3 TypeQLDefine (com.vaticle.typeql.lang.query.TypeQLDefine)3 Test (org.junit.Test)3 ConceptMap (com.vaticle.typedb.core.concept.answer.ConceptMap)2 Context (com.vaticle.typedb.core.common.parameters.Context)1 Attribute (com.vaticle.typedb.core.concept.thing.Attribute)1 Entity (com.vaticle.typedb.core.concept.thing.Entity)1 CoreTransaction (com.vaticle.typedb.core.database.CoreTransaction)1 Identifier (com.vaticle.typedb.core.traversal.common.Identifier)1 VertexMap (com.vaticle.typedb.core.traversal.common.VertexMap)1 GraphProcedure (com.vaticle.typedb.core.traversal.procedure.GraphProcedure)1 ProcedureVertex (com.vaticle.typedb.core.traversal.procedure.ProcedureVertex)1 TypeQLDelete (com.vaticle.typeql.lang.query.TypeQLDelete)1 TypeQLMatch (com.vaticle.typeql.lang.query.TypeQLMatch)1 Given (io.cucumber.java.en.Given)1 When (io.cucumber.java.en.When)1