private void showNodeCounts(ReadOperations read, DbStructureVisitor visitor) { visitor.visitAllNodesCount(read.countsForNode(ANY_LABEL)); for (Label label : glops.getAllLabels()) { int labelId = read.labelGetForName(label.name()); visitor.visitNodeCount(labelId, label.name(), read.countsForNode(labelId)); } }
private void showRelCounts(ReadOperations read, DbStructureVisitor visitor) { // all wildcards noSide(read, visitor, WILDCARD_REL_TYPE, ANY_RELATIONSHIP_TYPE); // one label only for (Label label : glops.getAllLabels()) { int labelId = read.labelGetForName(label.name()); leftSide(read, visitor, label, labelId, WILDCARD_REL_TYPE, ANY_RELATIONSHIP_TYPE); rightSide(read, visitor, label, labelId, WILDCARD_REL_TYPE, ANY_RELATIONSHIP_TYPE); } // fixed rel type for (RelationshipType relType : glops.getAllRelationshipTypes()) { int relTypeId = read.relationshipTypeGetForName(relType.name()); noSide(read, visitor, relType, relTypeId); for (Label label : glops.getAllLabels()) { int labelId = read.labelGetForName(label.name()); // wildcard on right leftSide(read, visitor, label, labelId, relType, relTypeId); // wildcard on left rightSide(read, visitor, label, labelId, relType, relTypeId); } } }
private void showIndices( DbStructureVisitor visitor, ReadOperations read, TokenNameLookup nameLookup) throws IndexNotFoundKernelException { Iterator<IndexDescriptor> indexDescriptors = read.indexesGetAll(); while (indexDescriptors.hasNext()) { IndexDescriptor descriptor = indexDescriptors.next(); String userDescription = descriptor.userDescription(nameLookup); double uniqueValuesPercentage = read.indexUniqueValuesSelectivity(descriptor); visitor.visitIndex(descriptor, userDescription, uniqueValuesPercentage); } }
private void noSide( ReadOperations read, DbStructureVisitor visitor, RelationshipType relType, int relTypeId) { String userDescription = format("MATCH ()-[%s]->() RETURN count(*)", colon(relType.name())); long amount = read.countsForRelationship(ANY_LABEL, relTypeId, ANY_LABEL); visitor.visitRelCount(ANY_LABEL, relTypeId, ANY_LABEL, userDescription, amount); }
private void showUniqueConstraints( DbStructureVisitor visitor, ReadOperations read, TokenNameLookup nameLookup) { Iterator<UniquenessConstraint> constraints = read.constraintsGetAll(); while (constraints.hasNext()) { UniquenessConstraint constraint = constraints.next(); String userDescription = constraint.userDescription(nameLookup); visitor.visitUniqueConstraint(constraint, userDescription); } }
public static void awaitIndexOnline(ReadOperations readOperations, IndexDescriptor indexRule) throws IndexNotFoundKernelException { long start = System.currentTimeMillis(); while (true) { if (readOperations.indexGetState(indexRule) == InternalIndexState.ONLINE) { break; } if (start + 1000 * 10 < System.currentTimeMillis()) { throw new RuntimeException("Index didn't come online within a reasonable time."); } } }
private void showLabels(ReadOperations read, DbStructureVisitor visitor) { for (Label label : glops.getAllLabels()) { int labelId = read.labelGetForName(label.name()); visitor.visitLabel(labelId, label.name()); } }
private void showRelTypes(ReadOperations read, DbStructureVisitor visitor) { for (RelationshipType relType : glops.getAllRelationshipTypes()) { int relTypeId = read.relationshipTypeGetForName(relType.name()); visitor.visitRelationshipType(relTypeId, relType.name()); } }
private void showPropertyKeys(ReadOperations read, DbStructureVisitor visitor) { for (String propertyKeyName : glops.getAllPropertyKeys()) { int propertyKeyId = read.propertyKeyGetForName(propertyKeyName); visitor.visitPropertyKey(propertyKeyId, propertyKeyName); } }