@SuppressWarnings("unchecked") @Test public void test1() { db = new ODatabaseDocumentTx( "local:C:/work/dev/orientechnologies/orientdb/temp/danny/library/library"); try { db.create(); master = db.getMetadata().getSchema().createClass("Master"); master.createProperty("type", OType.STRING); master.createProperty("master", OType.LONG); dependents = db.getMetadata().getSchema().createClass("Dependents"); dependents.createProperty("type", OType.STRING); dependents.createProperty("dependents", OType.EMBEDDEDLIST, master); db.close(); db.open("admin", "admin"); dependents = db.getMetadata().getSchema().getClass("Dependents"); master = db.getMetadata().getSchema().getClass("Master"); // CREATE NEW DOC new ODocument(db, "Dependents") .field( "dependents", new ODocument[] { new ODocument(db, "Master") .field("mastertype", "Title") .field("master", 4151788013272153098L) }) .save(); db.close(); db.open("admin", "admin"); // LOAD IT AND CHECK THE LONG VALUE for (ODocument doc : db.browseClass("Dependents")) { System.out.println(doc); for (ODocument emb : (Iterable<ODocument>) doc.field("dependents")) Assert.assertEquals(emb.field("master"), 4151788013272153098L); } db.close(); } catch (Exception e) { e.printStackTrace(); } }
@Override public boolean execute(final OHttpRequest iRequest) throws Exception { String[] urlParts = checkSyntax( iRequest.url, 3, "Syntax error: class/<database>/<class-name>[/<limit>]<br/>Limit is optional and is setted to 20 by default. Set expressely to 0 to have no limits."); iRequest.data.commandInfo = "Browse class"; iRequest.data.commandDetail = urlParts[2]; ODatabaseDocumentTx db = null; try { db = getProfiledDatabaseInstance(iRequest); if (db.getMetadata().getSchema().getClass(urlParts[2]) == null) throw new IllegalArgumentException("Invalid class '" + urlParts[2] + "'"); final int limit = urlParts.length > 3 ? Integer.parseInt(urlParts[3]) : 20; final List<ORecord<?>> response = new ArrayList<ORecord<?>>(); for (ORecord<?> rec : db.browseClass(urlParts[2])) { if (limit > 0 && response.size() >= limit) break; response.add(rec); } if (response != null && response.size() > 0) { sendRecordsContent(iRequest, response); } else { final StringWriter buffer = new StringWriter(); final OJSONWriter json = new OJSONWriter(buffer, JSON_FORMAT); json.beginObject(); exportClassSchema(db, json, db.getMetadata().getSchema().getClass(urlParts[2])); json.endObject(); sendTextContent( iRequest, OHttpUtils.STATUS_OK_CODE, "OK", null, OHttpUtils.CONTENT_JSON, buffer.toString()); } } finally { if (db != null) OSharedDocumentDatabase.release(db); } return false; }
@BeforeClass public void beforeClass() throws Exception { db = new ODatabaseDocumentTx(DB_STORAGE + ":" + DB_NAME); db.create(); getProfilerInstance().startRecording(); db.command(new OCommandSQL("CREATE class foo")).execute(); db.command(new OCommandSQL("CREATE property foo.name STRING")).execute(); db.command(new OCommandSQL("CREATE property foo.bar INTEGER")).execute(); db.command(new OCommandSQL("CREATE property foo.address EMBEDDED")).execute(); db.command(new OCommandSQL("CREATE property foo.comp STRING")).execute(); db.command(new OCommandSQL("CREATE property foo.osite INTEGER")).execute(); db.command(new OCommandSQL("CREATE index foo_name on foo (name) NOTUNIQUE")).execute(); db.command(new OCommandSQL("CREATE index foo_bar on foo (bar) NOTUNIQUE")).execute(); db.command(new OCommandSQL("CREATE index foo_comp_osite on foo (comp, osite) NOTUNIQUE")) .execute(); db.command( new OCommandSQL( "insert into foo (name, bar, address) values ('a', 1, {'street':'1st street', 'city':'NY', '@type':'d'})")) .execute(); db.command(new OCommandSQL("insert into foo (name, bar) values ('b', 2)")).execute(); db.command(new OCommandSQL("insert into foo (name, bar) values ('c', 3)")).execute(); db.command(new OCommandSQL("insert into foo (comp, osite) values ('a', 1)")).execute(); db.command(new OCommandSQL("insert into foo (comp, osite) values ('b', 2)")).execute(); db.command(new OCommandSQL("CREATE class bar")).execute(); db.command(new OCommandSQL("insert into bar (name, foo) values ('a', 1)")).execute(); db.command(new OCommandSQL("insert into bar (name, foo) values ('b', 2)")).execute(); db.command(new OCommandSQL("insert into bar (name, foo) values ('c', 3)")).execute(); db.command(new OCommandSQL("insert into bar (name, foo) values ('d', 4)")).execute(); db.command(new OCommandSQL("insert into bar (name, foo) values ('e', 5)")).execute(); db.command(new OCommandSQL("insert into bar (name, foo) values ('f', 1)")).execute(); db.command(new OCommandSQL("insert into bar (name, foo) values ('g', 2)")).execute(); db.command(new OCommandSQL("insert into bar (name, foo) values ('h', 3)")).execute(); db.command(new OCommandSQL("insert into bar (name, foo) values ('i', 4)")).execute(); db.command(new OCommandSQL("insert into bar (name, foo) values ('j', 5)")).execute(); db.command(new OCommandSQL("insert into bar (name, foo) values ('k', 1)")).execute(); db.command(new OCommandSQL("insert into bar (name, foo) values ('l', 2)")).execute(); db.command(new OCommandSQL("insert into bar (name, foo) values ('m', 3)")).execute(); db.command(new OCommandSQL("insert into bar (name, foo) values ('n', 4)")).execute(); db.command(new OCommandSQL("insert into bar (name, foo) values ('o', 5)")).execute(); db.command(new OCommandSQL("CREATE class ridsorttest")).execute(); db.command(new OCommandSQL("CREATE property ridsorttest.name INTEGER")).execute(); db.command(new OCommandSQL("CREATE index ridsorttest_name on ridsorttest (name) NOTUNIQUE")) .execute(); db.command(new OCommandSQL("insert into ridsorttest (name) values (1)")).execute(); db.command(new OCommandSQL("insert into ridsorttest (name) values (5)")).execute(); db.command(new OCommandSQL("insert into ridsorttest (name) values (3)")).execute(); db.command(new OCommandSQL("insert into ridsorttest (name) values (4)")).execute(); db.command(new OCommandSQL("insert into ridsorttest (name) values (1)")).execute(); db.command(new OCommandSQL("insert into ridsorttest (name) values (8)")).execute(); db.command(new OCommandSQL("insert into ridsorttest (name) values (6)")).execute(); db.command(new OCommandSQL("CREATE class unwindtest")).execute(); db.command( new OCommandSQL("insert into unwindtest (name, coll) values ('foo', ['foo1', 'foo2'])")) .execute(); db.command( new OCommandSQL("insert into unwindtest (name, coll) values ('bar', ['bar1', 'bar2'])")) .execute(); db.command(new OCommandSQL("CREATE class edge")).execute(); db.command(new OCommandSQL("CREATE class TestFromInSquare")).execute(); db.command( new OCommandSQL( "insert into TestFromInSquare set tags = {' from ':'foo',' to ':'bar'}")) .execute(); db.command(new OCommandSQL("CREATE class TestMultipleClusters")).execute(); db.command( new OCommandSQL("alter class TestMultipleClusters addcluster testmultipleclusters1 ")) .execute(); db.command( new OCommandSQL("alter class TestMultipleClusters addcluster testmultipleclusters2 ")) .execute(); db.command(new OCommandSQL("insert into cluster:testmultipleclusters set name = 'aaa'")) .execute(); db.command(new OCommandSQL("insert into cluster:testmultipleclusters1 set name = 'foo'")) .execute(); db.command(new OCommandSQL("insert into cluster:testmultipleclusters2 set name = 'bar'")) .execute(); db.command(new OCommandSQL("CREATE class TestUrl")).execute(); db.command( new OCommandSQL("insert into TestUrl content { \"url\": \"http://www.google.com\" }")) .execute(); db.command(new OCommandSQL("CREATE class TestParams")).execute(); db.command( new OCommandSQL( "insert into TestParams set name = 'foo', surname ='foo', active = true")) .execute(); db.command( new OCommandSQL( "insert into TestParams set name = 'foo', surname ='bar', active = false")) .execute(); db.command(new OCommandSQL("CREATE class TestParamsEmbedded")).execute(); db.command( new OCommandSQL( "insert into TestParamsEmbedded set emb = { \n" + " \"count\":0,\n" + " \"testupdate\":\"1441258203385\"\n" + " }")) .execute(); db.command( new OCommandSQL( "insert into TestParamsEmbedded set emb = { \n" + " \"count\":1,\n" + " \"testupdate\":\"1441258203385\"\n" + " }")) .execute(); db.command(new OCommandSQL("CREATE class TestBacktick")).execute(); db.command(new OCommandSQL("insert into TestBacktick set foo = 1, bar = 2, `foo-bar` = 10")) .execute(); // /*** from issue #2743 OSchema schema = db.getMetadata().getSchema(); if (!schema.existsClass("alphabet")) { schema.createClass("alphabet"); } ORecordIteratorClass<ODocument> iter = db.browseClass("alphabet"); while (iter.hasNext()) { iter.next().delete(); } // add 26 entries: { "letter": "A", "number": 0 }, ... { "letter": "Z", "number": 25 } String rowModel = "{\"letter\": \"%s\", \"number\": %d}"; for (int i = 0; i < 26; ++i) { String l = String.valueOf((char) ('A' + i)); String json = String.format(rowModel, l, i); ODocument doc = db.newInstance("alphabet"); doc.fromJSON(json); doc.save(); } db.command(new OCommandSQL("create class OCommandExecutorSQLSelectTest_aggregations")) .execute(); db.command( new OCommandSQL( "insert into OCommandExecutorSQLSelectTest_aggregations set data = [{\"size\": 0}, {\"size\": 0}, {\"size\": 30}, {\"size\": 50}, {\"size\": 50}]")) .execute(); initExpandSkipLimit(db); initMassiveOrderSkipLimit(db); initDatesSet(db); initMatchesWithRegex(db); initDistinctLimit(db); }