Search in sources :

Example 66 with ODatabaseDocument

use of com.orientechnologies.orient.core.db.document.ODatabaseDocument in project orientdb by orientechnologies.

the class DepthFetchPlanTest method testFullDepthFetchPlan.

@Test
public void testFullDepthFetchPlan() {
    ODatabaseDocument database = new ODatabaseDocumentTx("memory:" + DepthFetchPlanTest.class.getSimpleName());
    database.create();
    try {
        database.getMetadata().getSchema().createClass("Test");
        ODocument doc = new ODocument("Test");
        ODocument doc1 = new ODocument("Test");
        ODocument doc2 = new ODocument("Test");
        ODocument doc3 = new ODocument("Test");
        doc.field("name", "name");
        database.save(doc);
        doc1.field("name", "name1");
        doc1.field("ref", doc);
        database.save(doc1);
        doc2.field("name", "name2");
        doc2.field("ref", doc1);
        database.save(doc2);
        doc3.field("name", "name2");
        doc3.field("ref", doc2);
        database.save(doc3);
        OFetchContext context = new ORemoteFetchContext();
        CountFetchListener listener = new CountFetchListener();
        OFetchHelper.fetch(doc3, doc3, OFetchHelper.buildFetchPlan("[*]ref:-1"), listener, context, "");
        assertEquals(3, listener.count);
    } finally {
        database.drop();
    }
}
Also used : OFetchContext(com.orientechnologies.orient.core.fetch.OFetchContext) ORemoteFetchContext(com.orientechnologies.orient.core.fetch.remote.ORemoteFetchContext) ODatabaseDocument(com.orientechnologies.orient.core.db.document.ODatabaseDocument) ODatabaseDocumentTx(com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx) ODocument(com.orientechnologies.orient.core.record.impl.ODocument) Test(org.testng.annotations.Test)

Example 67 with ODatabaseDocument

use of com.orientechnologies.orient.core.db.document.ODatabaseDocument in project orientdb by orientechnologies.

the class DepthFetchPlanTest method testFetchPlanDepth.

@Test
public void testFetchPlanDepth() {
    ODatabaseDocument database = new ODatabaseDocumentTx("memory:" + DepthFetchPlanTest.class.getSimpleName());
    database.create();
    try {
        database.getMetadata().getSchema().createClass("Test");
        ODocument doc = new ODocument("Test");
        ODocument doc1 = new ODocument("Test");
        ODocument doc2 = new ODocument("Test");
        doc.field("name", "name");
        database.save(doc);
        doc1.field("name", "name1");
        doc1.field("ref", doc);
        database.save(doc1);
        doc2.field("name", "name2");
        doc2.field("ref", doc1);
        database.save(doc2);
        OFetchContext context = new ORemoteFetchContext();
        CountFetchListener listener = new CountFetchListener();
        OFetchHelper.fetch(doc2, doc2, OFetchHelper.buildFetchPlan("ref:1 *:-2"), listener, context, "");
        assertEquals(1, listener.count);
    } finally {
        database.drop();
    }
}
Also used : OFetchContext(com.orientechnologies.orient.core.fetch.OFetchContext) ORemoteFetchContext(com.orientechnologies.orient.core.fetch.remote.ORemoteFetchContext) ODatabaseDocument(com.orientechnologies.orient.core.db.document.ODatabaseDocument) ODatabaseDocumentTx(com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx) ODocument(com.orientechnologies.orient.core.record.impl.ODocument) Test(org.testng.annotations.Test)

Example 68 with ODatabaseDocument

use of com.orientechnologies.orient.core.db.document.ODatabaseDocument in project orientdb by orientechnologies.

the class OSQLFunctionConvertTest method testSQLConversions.

@Test
public void testSQLConversions() {
    ODatabaseDocument db = new ODatabaseDocumentTx("memory:testSQLConvert");
    try {
        db.create();
        db.command(new OCommandSQL("create class TestConversion")).execute();
        db.command(new OCommandSQL("insert into TestConversion set string = 'Jay', date = sysdate(), number = 33")).execute();
        ODocument doc = (ODocument) db.query(new OSQLSynchQuery<ODocument>("select from TestConversion limit 1")).get(0);
        db.command(new OCommandSQL("update TestConversion set selfrid = 'foo" + doc.getIdentity() + "'")).execute();
        List<ODocument> results = db.query(new OSQLSynchQuery<ODocument>("select string.asString() as convert from TestConversion"));
        assertNotNull(results);
        assertEquals(results.size(), 1);
        assertTrue(results.get(0).field("convert") instanceof String);
        results = db.query(new OSQLSynchQuery<ODocument>("select number.asDate() as convert from TestConversion"));
        assertNotNull(results);
        assertEquals(results.size(), 1);
        assertTrue(results.get(0).field("convert") instanceof Date);
        results = db.query(new OSQLSynchQuery<ODocument>("select number.asDateTime() as convert from TestConversion"));
        assertNotNull(results);
        assertEquals(results.size(), 1);
        assertTrue(results.get(0).field("convert") instanceof Date);
        results = db.query(new OSQLSynchQuery<ODocument>("select number.asInteger() as convert from TestConversion"));
        assertNotNull(results);
        assertEquals(results.size(), 1);
        assertTrue(results.get(0).field("convert") instanceof Integer);
        results = db.query(new OSQLSynchQuery<ODocument>("select number.asLong() as convert from TestConversion"));
        assertNotNull(results);
        assertEquals(results.size(), 1);
        assertTrue(results.get(0).field("convert") instanceof Long);
        results = db.query(new OSQLSynchQuery<ODocument>("select number.asFloat() as convert from TestConversion"));
        assertNotNull(results);
        assertEquals(results.size(), 1);
        assertTrue(results.get(0).field("convert") instanceof Float);
        results = db.query(new OSQLSynchQuery<ODocument>("select number.asDecimal() as convert from TestConversion"));
        assertNotNull(results);
        assertEquals(results.size(), 1);
        assertTrue(results.get(0).field("convert") instanceof BigDecimal);
        results = db.query(new OSQLSynchQuery<ODocument>("select number.convert('LONG') as convert from TestConversion"));
        assertNotNull(results);
        assertEquals(results.size(), 1);
        assertTrue(results.get(0).field("convert") instanceof Long);
        results = db.query(new OSQLSynchQuery<ODocument>("select number.convert('SHORT') as convert from TestConversion"));
        assertNotNull(results);
        assertEquals(results.size(), 1);
        assertTrue(results.get(0).field("convert") instanceof Short);
        results = db.query(new OSQLSynchQuery<ODocument>("select number.convert('DOUBLE') as convert from TestConversion"));
        assertNotNull(results);
        assertEquals(results.size(), 1);
        assertTrue(results.get(0).field("convert") instanceof Double);
        results = db.query(new OSQLSynchQuery<ODocument>("select selfrid.substring(3).convert('LINK').string as convert from TestConversion"));
        assertNotNull(results);
        assertEquals(results.size(), 1);
        assertEquals(results.get(0).field("convert"), "Jay");
    } finally {
        db.drop();
    }
}
Also used : OSQLSynchQuery(com.orientechnologies.orient.core.sql.query.OSQLSynchQuery) ODatabaseDocumentTx(com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx) Date(java.util.Date) BigDecimal(java.math.BigDecimal) OCommandSQL(com.orientechnologies.orient.core.sql.OCommandSQL) ODatabaseDocument(com.orientechnologies.orient.core.db.document.ODatabaseDocument) ODocument(com.orientechnologies.orient.core.record.impl.ODocument) Test(org.testng.annotations.Test)

Example 69 with ODatabaseDocument

use of com.orientechnologies.orient.core.db.document.ODatabaseDocument in project orientdb by orientechnologies.

the class OFunctionSqlTest method functionSqlWithParameters.

@Test
public void functionSqlWithParameters() {
    ODatabaseDocument db = new ODatabaseDocumentTx("memory:functionSqlWithParameters");
    db.create();
    // ODatabaseRecordThreadLocal.INSTANCE.set(db);
    ODocument doc1 = new ODocument("Test");
    doc1.field("name", "Enrico");
    db.save(doc1);
    doc1.reset();
    doc1.setClassName("Test");
    doc1.field("name", "Luca");
    db.save(doc1);
    OFunction function = new OFunction();
    function.setName("test");
    function.setCode("select from Test where name = :name");
    function.setParameters(new ArrayList<String>() {

        {
            add("name");
        }
    });
    function.save();
    Object result = function.executeInContext(new OBasicCommandContext(), "Enrico");
    System.out.println(result);
    Assert.assertEquals(((OResultSet) result).size(), 1);
    db.drop();
}
Also used : OBasicCommandContext(com.orientechnologies.orient.core.command.OBasicCommandContext) ODatabaseDocument(com.orientechnologies.orient.core.db.document.ODatabaseDocument) ODatabaseDocumentTx(com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx) ODocument(com.orientechnologies.orient.core.record.impl.ODocument) OFunction(com.orientechnologies.orient.core.metadata.function.OFunction) Test(org.testng.annotations.Test)

Example 70 with ODatabaseDocument

use of com.orientechnologies.orient.core.db.document.ODatabaseDocument in project orientdb by orientechnologies.

the class SQLAlterClassTest method testQuoted.

@Test
public void testQuoted() {
    ODatabaseDocument db = new ODatabaseDocumentTx("memory:" + SQLAlterClassTest.class.getName() + "_Quoted");
    db.create();
    try {
        try {
            db.command(new OCommandSQL("create class `Client-Type`")).execute();
            db.command(new OCommandSQL("alter class `Client-Type` addcluster `client-type_usa`")).execute();
            db.command(new OCommandSQL("insert into `Client-Type` set foo = 'bar'")).execute();
            List<?> result = db.query(new OSQLSynchQuery<Object>("Select from `Client-Type`"));
            Assert.assertEquals(result.size(), 1);
        } catch (OCommandSQLParsingException ex) {
            Assert.fail();
        }
    } finally {
        db.drop();
    }
}
Also used : ODatabaseDocument(com.orientechnologies.orient.core.db.document.ODatabaseDocument) ODatabaseDocumentTx(com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx) Test(org.testng.annotations.Test)

Aggregations

ODatabaseDocument (com.orientechnologies.orient.core.db.document.ODatabaseDocument)187 ODatabaseDocumentTx (com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx)81 ODocument (com.orientechnologies.orient.core.record.impl.ODocument)68 Test (org.testng.annotations.Test)53 OClass (com.orientechnologies.orient.core.metadata.schema.OClass)47 ORecordId (com.orientechnologies.orient.core.id.ORecordId)23 OCommandExecutionException (com.orientechnologies.orient.core.exception.OCommandExecutionException)17 OIdentifiable (com.orientechnologies.orient.core.db.record.OIdentifiable)16 ORecord (com.orientechnologies.orient.core.record.ORecord)14 Test (org.junit.Test)14 OCommandRequestText (com.orientechnologies.orient.core.command.OCommandRequestText)12 ORID (com.orientechnologies.orient.core.id.ORID)11 OSQLSynchQuery (com.orientechnologies.orient.core.sql.query.OSQLSynchQuery)10 ODatabaseException (com.orientechnologies.orient.core.exception.ODatabaseException)9 OValidationException (com.orientechnologies.orient.core.exception.OValidationException)9 OSchema (com.orientechnologies.orient.core.metadata.schema.OSchema)9 OCommandSQL (com.orientechnologies.orient.core.sql.OCommandSQL)9 ArrayList (java.util.ArrayList)9 OMetadataInternal (com.orientechnologies.orient.core.metadata.OMetadataInternal)8 HashSet (java.util.HashSet)8