use of com.orientechnologies.orient.core.index.OIndex in project orientdb by orientechnologies.
the class IndexManagerTest method testGetInvolvedIndexesPropertiesMorThanNeeded.
@Test(dependsOnMethods = { "createCompositeIndexTestWithListener", "createCompositeIndexTestWithoutListener", "testCreateOnePropertyIndexTest" })
public void testGetInvolvedIndexesPropertiesMorThanNeeded() {
final OIndexManager indexManager = database.getMetadata().getIndexManager();
final Set<OIndex<?>> result = indexManager.getClassInvolvedIndexes(CLASS_NAME, Arrays.asList("fTwo", "fOne", "fThee", "fFour"));
assertEquals(result.size(), 0);
}
use of com.orientechnologies.orient.core.index.OIndex in project orientdb by orientechnologies.
the class IndexCrashRestoreMultiValueIT 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() + " minLostTs:: " + minLostTs);
long maxInterval = minLostTs == Long.MAX_VALUE ? 0 : lastTs - minLostTs;
System.out.println("Lost records max interval (ms) : " + maxInterval);
assertThat(maxInterval).isLessThan(2000);
}
use of com.orientechnologies.orient.core.index.OIndex in project orientdb by orientechnologies.
the class IndexCrashRestoreSingleValueIT method compareIndexes.
private void compareIndexes() {
ODatabaseRecordThreadLocal.INSTANCE.set(baseDocumentTx);
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) {
ODatabaseRecordThreadLocal.INSTANCE.set(baseDocumentTx);
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();
ODatabaseRecordThreadLocal.INSTANCE.set(testDocumentTx);
OIndex testIndex = testDocumentTx.getMetadata().getIndexManager().getIndex("mi");
Set<OIdentifiable> result = (Set<OIdentifiable>) testIndex.get(key);
if (result == null || result.isEmpty()) {
if (minLostTs > ts)
minLostTs = ts;
} else
restoredRecords++;
}
ODatabaseRecordThreadLocal.INSTANCE.set(baseDocumentTx);
System.out.println("Restored entries : " + restoredRecords + " out of : " + baseDocumentTx.getMetadata().getIndexManager().getIndex("mi").getSize());
long maxInterval = minLostTs == Long.MAX_VALUE ? 0 : lastTs - minLostTs;
System.out.println("Lost records max interval (ms) : " + maxInterval);
assertThat(maxInterval).isLessThan(2000);
}
use of com.orientechnologies.orient.core.index.OIndex in project orientdb by orientechnologies.
the class PropertyIndexTest method testGetIndexes.
@Test(dependsOnMethods = "createAdditionalSchemas")
public void testGetIndexes() {
final OSchema schema = database.getMetadata().getSchema();
final OClass oClass = schema.getClass("PropertyIndexTestClass");
final OProperty propOne = oClass.getProperty("prop1");
final Collection<OIndex<?>> indexes = propOne.getIndexes();
Assert.assertEquals(indexes.size(), 1);
Assert.assertNotNull(containsIndex(indexes, "PropertyIndexTestClass.prop1"));
}
use of com.orientechnologies.orient.core.index.OIndex in project orientdb by orientechnologies.
the class PropertyIndexTest method testCreateUniqueIndex.
@Test
public void testCreateUniqueIndex() {
final OSchema schema = database.getMetadata().getSchema();
final OClass oClass = schema.getClass("PropertyIndexTestClass");
final OProperty propOne = oClass.getProperty("prop1");
propOne.createIndex(OClass.INDEX_TYPE.UNIQUE, new ODocument().field("ignoreNullValues", true));
final Collection<OIndex<?>> indexes = propOne.getIndexes();
OIndexDefinition indexDefinition = null;
for (final OIndex<?> index : indexes) {
if (index.getName().equals("PropertyIndexTestClass.prop1")) {
indexDefinition = index.getDefinition();
break;
}
}
Assert.assertNotNull(indexDefinition);
Assert.assertEquals(indexDefinition.getParamCount(), 1);
Assert.assertEquals(indexDefinition.getFields().size(), 1);
Assert.assertTrue(indexDefinition.getFields().contains("prop1"));
Assert.assertEquals(indexDefinition.getTypes().length, 1);
Assert.assertEquals(indexDefinition.getTypes()[0], OType.STRING);
schema.save();
}
Aggregations