@Test(dependsOnMethods = {"testTransactionalUsageWorks"}) public void testTransactionalUsageBreaks2() { OIndex<?> index = getIndex(); database.begin(OTransaction.TXTYPE.OPTIMISTIC); ComparableBinary key7 = new ComparableBinary( new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 7 }); ODocument doc1 = new ODocument().field("k", "key7"); index.put(key7, doc1); ComparableBinary key8 = new ComparableBinary( new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 8 }); ODocument doc2 = new ODocument().field("k", "key8"); index.put(key8, doc2); database.commit(); Assert.assertEquals(index.get(key7), doc1); Assert.assertEquals(index.get(key8), doc2); }
public void testTransactionalUsageWorks() { database.begin(OTransaction.TXTYPE.OPTIMISTIC); // OIndex<?> index = getManualIndex(); ComparableBinary key3 = new ComparableBinary( new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 3 }); ODocument doc1 = new ODocument().field("k", "key3"); final OIndex index = getIndex(); index.put(key3, doc1); ComparableBinary key4 = new ComparableBinary( new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 4 }); ODocument doc2 = new ODocument().field("k", "key4"); index.put(key4, doc2); database.commit(); Assert.assertEquals(index.get(key3), doc1); Assert.assertEquals(index.get(key4), doc2); }
/** Execute the INSERT and return the ODocument object created. */ public Object execute(final Map<Object, Object> iArgs) { if (newRecords == null && content == null) throw new OCommandExecutionException( "Cannot execute the command because it has not been parsed yet"); final OCommandParameters commandParameters = new OCommandParameters(iArgs); if (indexName != null) { if (newRecords == null) throw new OCommandExecutionException("No key/value found"); final OIndex<?> index = getDatabase().getMetadata().getIndexManager().getIndex(indexName); if (index == null) throw new OCommandExecutionException("Target index '" + indexName + "' not found"); // BIND VALUES Map<String, Object> result = null; for (Map<String, Object> candidate : newRecords) { index.put( getIndexKeyValue(commandParameters, candidate), getIndexValue(commandParameters, candidate)); result = candidate; } // RETURN LAST ENTRY return new ODocument(result); } else { // CREATE NEW DOCUMENTS final List<ODocument> docs = new ArrayList<ODocument>(); if (newRecords != null) { for (Map<String, Object> candidate : newRecords) { final ODocument doc = className != null ? new ODocument(className) : new ODocument(); OSQLHelper.bindParameters(doc, candidate, commandParameters, context); if (clusterName != null) { doc.save(clusterName); } else { doc.save(); } docs.add(doc); } if (docs.size() == 1) return docs.get(0); else return docs; } else if (content != null) { final ODocument doc = className != null ? new ODocument(className) : new ODocument(); doc.merge(content, true, false); doc.save(); return doc; } } return null; }
public void testUsage() { OIndex<?> index = getIndex(); ComparableBinary key1 = new ComparableBinary( new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1 }); ODocument doc1 = new ODocument().field("k", "key1"); index.put(key1, doc1); ComparableBinary key2 = new ComparableBinary( new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 2 }); ODocument doc2 = new ODocument().field("k", "key1"); index.put(key2, doc2); Assert.assertEquals(index.get(key1), doc1); Assert.assertEquals(index.get(key2), doc2); }
public void addIndexEntry( final OIndex<?> delegate, final String iIndexName, final OPERATION iStatus, final Object iKey, final OIdentifiable iValue) { switch (iStatus) { case CLEAR: delegate.clear(); break; case PUT: delegate.put(iKey, iValue); break; case REMOVE: if (iKey == null) delegate.remove(iValue); else delegate.remove(iKey, iValue); break; } }
public void put(final String iKey, final Object iValue) { index.put(iKey, (OIdentifiable) iValue); }