package com.orientechnologies.orient.core.sql.select; import com.orientechnologies.orient.core.db.document.ODatabaseDocument; import com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx; import com.orientechnologies.orient.core.metadata.schema.OType; import com.orientechnologies.orient.core.record.impl.ODocument; import com.orientechnologies.orient.core.sql.query.OSQLSynchQuery; import org.testng.Assert; import org.testng.annotations.Test; import java.util.HashSet; import java.util.List; import java.util.Set; public class TestSqlEmbeddedResult { @Test public void testEmbeddedRusultTypeNotLink() { ODatabaseDocument db = new ODatabaseDocumentTx("memory:" + TestSqlEmbeddedResult.class.getSimpleName()); db.create(); db.getMetadata().getSchema().createClass("Test"); ODocument doc = new ODocument("Test"); ODocument doc1 = new ODocument(); doc1.field("format", 1); Set<ODocument> docs = new HashSet<ODocument>(); docs.add(doc1); doc.field("rel", docs); // doc db.save(doc); List<ODocument> res = db.query(new OSQLSynchQuery<Object>("select $Pics[0] as el FROM Test LET $Pics = (select expand( rel.include('format')) from $current)")); Assert.assertEquals(res.size(), 1); ODocument ele = res.get(0); Assert.assertNotNull(ele.field("el")); byte [] bt = ele.toStream(); ODocument read = new ODocument(bt); Assert.assertNotNull(read.field("el")); Assert.assertEquals(read.fieldType("el"), OType.EMBEDDED); res = db.query(new OSQLSynchQuery<Object>("select $Pics as el FROM Test LET $Pics = (select expand( rel.include('format')) from $current)")); Assert.assertEquals(res.size(), 1); ele = res.get(0); Assert.assertNotNull(ele.field("el")); bt = ele.toStream(); read = new ODocument(bt); Assert.assertNotNull(read.field("el")); Assert.assertEquals(read.fieldType("el"), OType.EMBEDDEDLIST); db.drop(); } }