private static void checkPrefix(EntityDefinition entityDef) { final Integer entityPrefixHashcode = entityDef.getPrefix().hashCode(); if (entityPrefixMap.containsKey(entityDef.getTable())) { final Map<Integer, EntityDefinition> entityHashMap = entityPrefixMap.get(entityDef.getTable()); if (entityHashMap.containsKey(entityPrefixHashcode) && (!entityDef.equals(entityHashMap.get(entityPrefixHashcode)))) { throw new IllegalArgumentException("Failed to register entity " + entityDef.getClass().getName() + ", because of the prefix hash code conflict! The entity prefix " + entityDef.getPrefix() + " has already been registered by entity service " + entityHashMap.get(entityPrefixHashcode).getService()); } final IndexDefinition[] indexes = entityDef.getIndexes(); if (indexes != null) { for (IndexDefinition index : indexes) { final Integer indexPrefixHashcode = index.getIndexPrefix().hashCode(); if (entityHashMap.containsKey(indexPrefixHashcode)) { throw new IllegalArgumentException("Failed to register entity " + entityDef.getClass().getName() + ", because of the prefix hash code conflict! The index prefix " + index.getIndexPrefix() + " has already been registered by entity " + entityHashMap.get(indexPrefixHashcode).getService()); } final Map<Integer, IndexDefinition> indexHashMap = indexPrefixMap.get(entityDef.getTable()); if (indexHashMap != null && indexHashMap.containsKey(indexPrefixHashcode) && (!index.equals(indexHashMap.get(indexPrefixHashcode)))) { throw new IllegalArgumentException("Failed to register entity " + entityDef.getClass().getName() + ", because of the prefix hash code conflict! The index prefix " + index.getIndexPrefix() + " has already been registered by entity " + indexHashMap.get(indexPrefixHashcode).getEntityDefinition().getService()); } } } } }
final IndexDefinition[] indexes = entityDef.getIndexes(); if (indexes != null) { for (IndexDefinition index : indexes) {
final IndexDefinition[] indexes = entityDef.getIndexes(); if (indexes != null) { for (IndexDefinition index : indexes) {
+ entityHashMap.get(entityPrefixHashcode).getService()); final IndexDefinition[] indexes = entityDef.getIndexes(); if (indexes != null) { for (IndexDefinition index : indexes) {
IndexDefinition[] indexDef = def.getIndexes(); if(indexDef!=null){ ArrayNode indexDefArray = JsonNodeFactory.instance.arrayNode();
final IndexDefinition[] indexes = entityDef.getIndexes(); if (indexes != null && indexes.length > 0) { reader.open();
final IndexDefinition[] indexes = entityDef.getIndexes(); if (indexes != null && indexes.length > 0) { reader.open();
log.setQualifierValues(des.writeValue(entity, entityDef)); final IndexDefinition[] indexDefs = entityDef.getIndexes(); if (indexDefs != null) { final List<byte[]> indexRowkeys = new ArrayList<byte[]>();
log.setQualifierValues(des.writeValue(entity, entityDef)); final IndexDefinition[] indexDefs = entityDef.getIndexes(); if (indexDefs != null) { final List<byte[]> indexRowkeys = new ArrayList<byte[]>();
private StreamReader selectQueryReader() throws InstantiationException, IllegalAccessException { final ORExpression query = condition.getQueryExpression(); IndexDefinition[] indexDefs = entityDef.getIndexes(); // Index just works with query condition if (indexDefs != null && condition.getQueryExpression()!=null) { List<byte[]> rowkeys = new ArrayList<>(); for (IndexDefinition index : indexDefs) { // Check unique index first if (index.isUnique()) { final IndexDefinition.IndexType type = index.canGoThroughIndex(query, rowkeys); if (!IndexDefinition.IndexType.NON_INDEX.equals(type)) { LOG.info("Selectd query unique index " + index.getIndexName() + " for query: " + condition.getQueryExpression()); return new UniqueIndexStreamReader(index, condition, rowkeys); } } } for (IndexDefinition index : indexDefs) { // Check non-clustered index if (!index.isUnique()) { final IndexDefinition.IndexType type = index.canGoThroughIndex(query, rowkeys); if (!IndexDefinition.IndexType.NON_INDEX.equals(type)) { LOG.info("Selectd query non clustered index " + index.getIndexName() + " for query: " + condition.getQueryExpression().toString()); return new NonClusteredIndexStreamReader(index, condition, rowkeys); } } } } return new GenericEntityScanStreamReader(entityDef, condition, this.prefix); }
private StreamReader selectQueryReader() throws InstantiationException, IllegalAccessException { final ORExpression query = condition.getQueryExpression(); IndexDefinition[] indexDefs = entityDef.getIndexes();
public void setEntityDefinition(EntityDefinition ed) { this.entityClass = ed.getEntityClass(); this.table = ed.getTable(); this.columnFamily = ed.getColumnFamily(); this.prefix = ed.getPrefix(); this.service = ed.getService(); this.partitions = ed.getPartitions(); this.displayNameMap = ed.getDisplayNameMap(); this.qualifierGetterMap = ed.getQualifierGetterMap(); this.qualifierNameMap = ed.getQualifierNameMap(); this.isTimeSeries = ed.isTimeSeries(); this.metricDefinition = ed.metricDefinition; this.indexes = ed.getIndexes(); }
public void setEntityDefinition(EntityDefinition ed){ this.entityClass = ed.getEntityClass(); this.table = ed.getTable(); this.columnFamily = ed.getColumnFamily(); this.prefix = ed.getPrefix(); this.service = ed.getService(); this.partitions = ed.getPartitions(); this.displayNameMap = ed.getDisplayNameMap(); this.qualifierGetterMap = ed.getQualifierGetterMap(); this.qualifierNameMap = ed.getQualifierNameMap(); this.isTimeSeries = ed.isTimeSeries(); this.metricDefinition = ed.metricDefinition; this.indexes = ed.getIndexes(); }
Assert.assertNotNull(result); final IndexDefinition indexDef = ed.getIndexes()[0]; SearchCondition condition = new SearchCondition(); condition.setOutputFields(new ArrayList<String>());
Assert.assertNotNull(result); final IndexDefinition indexDef = ed.getIndexes()[1]; SearchCondition condition = new SearchCondition(); condition.setOutputFields(new ArrayList<String>());
@Test public void testIndexDefinition() throws InstantiationException, IllegalAccessException { EntityDefinition ed = EntityDefinitionManager .getEntityDefinitionByEntityClass(TestLogAPIEntity.class); if (ed == null) { EntityDefinitionManager.registerEntity(TestLogAPIEntity.class); ed = EntityDefinitionManager.getEntityDefinitionByEntityClass(TestLogAPIEntity.class); } Assert.assertNotNull(ed); IndexDefinition[] indexDefinitions = ed.getIndexes(); Assert.assertNotNull(indexDefinitions); Assert.assertEquals(2, indexDefinitions.length); for (IndexDefinition def : indexDefinitions) { Assert.assertNotNull(def.getIndexName()); Assert.assertNotNull(def.getIndexColumns()); Assert.assertEquals(1, def.getIndexColumns().length); } }
IndexDefinition[] indexDef = def.getIndexes(); if(indexDef!=null){ ArrayNode indexDefArray = JsonNodeFactory.instance.arrayNode();
IndexDefinition[] indexDefs = ed.getIndexes(); for (IndexDefinition index : indexDefs) { byte[] indexRowkey = index.generateIndexRowkey(e);
IndexDefinition[] indexDefs = ed.getIndexes(); for (IndexDefinition index : indexDefs) { byte[] indexRowkey = index.generateIndexRowkey(e);
IndexDefinition[] indexDefs = ed.getIndexes(); for (IndexDefinition index : indexDefs) { byte[] indexRowkey = index.generateIndexRowkey(e);