use of com.orientechnologies.orient.core.index.OIndex in project orientdb by orientechnologies.
the class IndexCrashRestoreMultiValueAddDeleteIT method compareIndexes.
private void compareIndexes() {
baseDocumentTx.activateOnCurrentThread();
OIndexCursor cursor = baseDocumentTx.getMetadata().getIndexManager().getIndex("mi").cursor();
long lastTs = 0;
long minLostTs = Long.MAX_VALUE;
long restoredRecords = 0;
Map.Entry<Object, OIdentifiable> entry = cursor.nextEntry();
while (entry != null) {
baseDocumentTx.activateOnCurrentThread();
Integer key = (Integer) entry.getKey();
OIdentifiable identifiable = entry.getValue();
ODocument doc = identifiable.getRecord();
long ts = doc.<Long>field("ts");
if (ts > lastTs)
lastTs = ts;
entry = cursor.nextEntry();
testDocumentTx.activateOnCurrentThread();
OIndex testIndex = testDocumentTx.getMetadata().getIndexManager().getIndex("mi");
Set<OIdentifiable> result = (Set<OIdentifiable>) testIndex.get(key);
if (result == null || result.size() != 10) {
if (minLostTs > ts)
minLostTs = ts;
} else {
boolean cnt = true;
for (int i = 0; i < 10; i++) {
if (!result.contains(new ORecordId("#0:" + i))) {
cnt = false;
break;
}
}
if (!cnt) {
if (minLostTs > ts)
minLostTs = ts;
} else
restoredRecords++;
}
}
baseDocumentTx.activateOnCurrentThread();
System.out.println("Restored entries : " + restoredRecords + " out of : " + baseDocumentTx.getMetadata().getIndexManager().getIndex("mi").getSize());
System.out.println("Lost records max interval : " + (minLostTs == Long.MAX_VALUE ? 0 : lastTs - minLostTs));
}
use of com.orientechnologies.orient.core.index.OIndex in project orientdb by orientechnologies.
the class ClassIndexTest method testCreateOnePropertyLinkMapByValueIndex.
@Test
public void testCreateOnePropertyLinkMapByValueIndex() {
final OIndex result = oClass.createIndex("ClassIndexTestPropertyLinkedMapByValue", OClass.INDEX_TYPE.UNIQUE.toString(), null, new ODocument().fields("ignoreNullValues", true), new String[] { "fLinkMap by value" });
assertEquals(result.getName(), "ClassIndexTestPropertyLinkedMapByValue");
assertEquals(oClass.getClassIndex("ClassIndexTestPropertyLinkedMapByValue").getName(), result.getName());
assertEquals(database.getMetadata().getIndexManager().getClassIndex("ClassIndexTestClass", "ClassIndexTestPropertyLinkedMapByValue").getName(), result.getName());
final OIndexDefinition indexDefinition = result.getDefinition();
assertTrue(indexDefinition instanceof OPropertyMapIndexDefinition);
assertEquals(indexDefinition.getFields().get(0), "fLinkMap");
assertEquals(indexDefinition.getTypes()[0], OType.LINK);
assertEquals(((OPropertyMapIndexDefinition) indexDefinition).getIndexBy(), OPropertyMapIndexDefinition.INDEX_BY.VALUE);
}
use of com.orientechnologies.orient.core.index.OIndex in project orientdb by orientechnologies.
the class ClassIndexTest method testCreateCompositeLinkSetIndex.
@Test(dependsOnMethods = "testGetIndexes")
public void testCreateCompositeLinkSetIndex() {
final OIndex result = oClass.createIndex("ClassIndexTestCompositeLinkSet", OClass.INDEX_TYPE.UNIQUE.toString(), null, new ODocument().fields("ignoreNullValues", true), new String[] { "fTwelve", "fLinkSet" });
assertEquals(result.getName(), "ClassIndexTestCompositeLinkSet");
assertEquals(oClass.getClassIndex("ClassIndexTestCompositeLinkSet").getName(), result.getName());
assertEquals(database.getMetadata().getIndexManager().getClassIndex("ClassIndexTestClass", "ClassIndexTestCompositeLinkSet").getName(), result.getName());
final OIndexDefinition indexDefinition = result.getDefinition();
assertTrue(indexDefinition instanceof OCompositeIndexDefinition);
assertEquals(indexDefinition.getFields().toArray(), new String[] { "fTwelve", "fLinkSet" });
assertEquals(indexDefinition.getTypes(), new OType[] { OType.INTEGER, OType.LINK });
assertEquals(indexDefinition.getParamCount(), 2);
}
use of com.orientechnologies.orient.core.index.OIndex in project orientdb by orientechnologies.
the class ClassIndexTest method testCreateOnePropertyLinkedMapIndex.
@Test
public void testCreateOnePropertyLinkedMapIndex() {
final OIndex result = oClass.createIndex("ClassIndexTestPropertyLinkedMap", OClass.INDEX_TYPE.UNIQUE.toString(), null, new ODocument().fields("ignoreNullValues", true), new String[] { "fLinkMap" });
assertEquals(result.getName(), "ClassIndexTestPropertyLinkedMap");
assertEquals(oClass.getClassIndex("ClassIndexTestPropertyLinkedMap").getName(), result.getName());
assertEquals(database.getMetadata().getIndexManager().getClassIndex("ClassIndexTestClass", "ClassIndexTestPropertyLinkedMap").getName(), result.getName());
final OIndexDefinition indexDefinition = result.getDefinition();
assertTrue(indexDefinition instanceof OPropertyMapIndexDefinition);
assertEquals(indexDefinition.getFields().get(0), "fLinkMap");
assertEquals(indexDefinition.getTypes()[0], OType.STRING);
assertEquals(((OPropertyMapIndexDefinition) indexDefinition).getIndexBy(), OPropertyMapIndexDefinition.INDEX_BY.KEY);
}
use of com.orientechnologies.orient.core.index.OIndex in project orientdb by orientechnologies.
the class ClassIndexTest method createParentPropertyIndex.
public void createParentPropertyIndex() {
final OIndex result = oSuperClass.createIndex("ClassIndexTestParentPropertyNine", OClass.INDEX_TYPE.UNIQUE.toString(), null, new ODocument().fields("ignoreNullValues", true), new String[] { "fNine" });
assertEquals(result.getName(), "ClassIndexTestParentPropertyNine");
assertEquals(oSuperClass.getClassIndex("ClassIndexTestParentPropertyNine").getName(), result.getName());
}
Aggregations