@Override AbstractLabel getAbstractLabel(Schema schema) { return schema.getVertexLabel(this.table).orElseThrow(() -> new IllegalStateException(String.format("VertexLabel %s not found.", this.table))); }
@Override AbstractLabel getAbstractLabel(Schema schema) { return schema.getVertexLabel(this.table).orElseThrow(() -> new IllegalStateException(String.format("VertexLabel %s not found.", this.table))); }
public Optional<VertexLabel> getVertexLabel(String schemaName, String label) { Preconditions.checkArgument(!label.startsWith(VERTEX_PREFIX), "vertex label may not start with %s", VERTEX_PREFIX); Optional<Schema> schemaOptional = this.getSchema(schemaName); if (schemaOptional.isPresent()) { return schemaOptional.get().getVertexLabel(label); } else { return Optional.empty(); } }
public Optional<VertexLabel> getVertexLabel(String schemaName, String label) { Preconditions.checkArgument(!label.startsWith(VERTEX_PREFIX), "vertex label may not start with %s", VERTEX_PREFIX); Optional<Schema> schemaOptional = this.getSchema(schemaName); if (schemaOptional.isPresent()) { return schemaOptional.get().getVertexLabel(label); } else { return Optional.empty(); } }
void ensureVertexColumnsExist(String label, Map<String, PropertyType> columns) { Preconditions.checkArgument(!label.startsWith(VERTEX_PREFIX), "label may not start with \"%s\"", VERTEX_PREFIX); Preconditions.checkState(!isSqlgSchema(), "Schema.ensureVertexLabelPropertiesExist may not be called for \"%s\"", SQLG_SCHEMA); Optional<VertexLabel> vertexLabel = getVertexLabel(label); Preconditions.checkState(vertexLabel.isPresent(), "BUG: vertexLabel \"%s\" must exist", label); //noinspection OptionalGetWithoutIsPresent vertexLabel.get().ensurePropertiesExist(columns); }
void ensureVertexColumnsExist(String label, Map<String, PropertyType> columns) { Preconditions.checkArgument(!label.startsWith(VERTEX_PREFIX), "label may not start with \"%s\"", VERTEX_PREFIX); Preconditions.checkState(!isSqlgSchema(), "Schema.ensureVertexLabelPropertiesExist may not be called for \"%s\"", SQLG_SCHEMA); Optional<VertexLabel> vertexLabel = getVertexLabel(label); Preconditions.checkState(vertexLabel.isPresent(), "BUG: vertexLabel \"%s\" must exist", label); //noinspection OptionalGetWithoutIsPresent vertexLabel.get().ensurePropertiesExist(columns); }
public VertexLabel ensureVertexLabelExist(final String label, final Map<String, PropertyType> columns, ListOrderedSet<String> identifiers) { Objects.requireNonNull(label, "Given table must not be null"); Preconditions.checkArgument(!label.startsWith(VERTEX_PREFIX), "label may not be prefixed with \"%s\"", VERTEX_PREFIX); for (String identifier : identifiers) { Preconditions.checkState(columns.containsKey(identifier), "The identifiers must be in the specified columns. \"%s\" not found", identifier); } Optional<VertexLabel> vertexLabelOptional = this.getVertexLabel(label); if (!vertexLabelOptional.isPresent()) { this.topology.lock(); vertexLabelOptional = this.getVertexLabel(label); //noinspection OptionalIsPresent if (!vertexLabelOptional.isPresent()) { return this.createVertexLabel(label, columns, identifiers); } else { return vertexLabelOptional.get(); } } else { VertexLabel vertexLabel = vertexLabelOptional.get(); //check if all the columns are there. vertexLabel.ensurePropertiesExist(columns); return vertexLabel; } }
public VertexLabel ensurePartitionedVertexLabelExist( final String label, final Map<String, PropertyType> columns, ListOrderedSet<String> identifiers, PartitionType partitionType, String partitionExpression) { Preconditions.checkState(this.sqlgGraph.getSqlDialect().supportsPartitioning()); Objects.requireNonNull(label, "Given table must not be null"); Preconditions.checkArgument(!label.startsWith(VERTEX_PREFIX), "label may not be prefixed with %s", VERTEX_PREFIX); Optional<VertexLabel> vertexLabelOptional = this.getVertexLabel(label); if (!vertexLabelOptional.isPresent()) { this.topology.lock(); vertexLabelOptional = this.getVertexLabel(label); return vertexLabelOptional.orElseGet( () -> this.createPartitionedVertexLabel(label, columns, identifiers, partitionType, partitionExpression) ); } else { VertexLabel vertexLabel = vertexLabelOptional.get(); //check if all the columns are there. vertexLabel.ensurePropertiesExist(columns); return vertexLabel; } }
Map<String, PropertyColumn> getPropertiesWithGlobalUniqueIndexFor(SchemaTable schemaTable) { Preconditions.checkArgument(schemaTable.getTable().startsWith(VERTEX_PREFIX) || schemaTable.getTable().startsWith(EDGE_PREFIX), "label must start with \"%s\" or \"%s\"", VERTEX_PREFIX, EDGE_PREFIX); if (schemaTable.isVertexTable()) { Optional<VertexLabel> vertexLabelOptional = getVertexLabel(schemaTable.withOutPrefix().getTable()); if (vertexLabelOptional.isPresent()) { return vertexLabelOptional.get().getGlobalUniqueIndexProperties(); } } else { Optional<EdgeLabel> edgeLabelOptional = getEdgeLabel(schemaTable.withOutPrefix().getTable()); if (edgeLabelOptional.isPresent()) { return edgeLabelOptional.get().getGlobalUniqueIndexProperties(); } } return Collections.emptyMap(); }
Map<String, PropertyType> getTableFor(SchemaTable schemaTable) { Preconditions.checkArgument(schemaTable.getTable().startsWith(VERTEX_PREFIX) || schemaTable.getTable().startsWith(EDGE_PREFIX), "label must start with \"%s\" or \"%s\"", VERTEX_PREFIX, EDGE_PREFIX); if (schemaTable.isVertexTable()) { Optional<VertexLabel> vertexLabelOptional = getVertexLabel(schemaTable.withOutPrefix().getTable()); if (vertexLabelOptional.isPresent()) { return vertexLabelOptional.get().getPropertyTypeMap(); } } else { Optional<EdgeLabel> edgeLabelOptional = getEdgeLabel(schemaTable.withOutPrefix().getTable()); if (edgeLabelOptional.isPresent()) { return edgeLabelOptional.get().getPropertyTypeMap(); } } return Collections.emptyMap(); }
void addDistributionColocate(Vertex colocate) { Preconditions.checkState(this.getSchema().getTopology().isSqlWriteLockHeldByCurrentThread()); this.distributionColocateAbstractLabel = getSchema().getVertexLabel(colocate.value(SQLG_SCHEMA_VERTEX_LABEL_NAME)).orElseThrow(() -> new IllegalStateException("Distribution Co-locate vertex label %s not found", colocate.value(SQLG_SCHEMA_VERTEX_LABEL_NAME))); }
void addDistributionColocate(Vertex colocate) { Preconditions.checkState(this.getSchema().getTopology().isSqlWriteLockHeldByCurrentThread()); this.distributionColocateAbstractLabel = getSchema().getVertexLabel(colocate.value(SQLG_SCHEMA_VERTEX_LABEL_NAME)).orElseThrow(() -> new IllegalStateException("Distribution Co-locate vertex label %s not found", colocate.value(SQLG_SCHEMA_VERTEX_LABEL_NAME))); }
private boolean hasNoEdgeLabels(SchemaTable schemaTable) { Optional<Schema> schemaOptional = sqlgGraph.getTopology().getSchema(schemaTable.getSchema()); Preconditions.checkState(schemaOptional.isPresent(), "BUG: %s not found in the topology.", schemaTable.getSchema()); Schema schema = schemaOptional.get(); boolean result = true; if (schemaTable.isVertexTable()) { //Need to delete any in/out edges. Optional<VertexLabel> vertexLabelOptional = schema.getVertexLabel(schemaTable.withOutPrefix().getTable()); Preconditions.checkState(vertexLabelOptional.isPresent(), "BUG: %s not found in the topology.", schemaTable.withOutPrefix().getTable()); VertexLabel vertexLabel = vertexLabelOptional.get(); Collection<EdgeLabel> outEdgeLabels = vertexLabel.getOutEdgeLabels().values(); Collection<EdgeLabel> inEdgeLabels = vertexLabel.getInEdgeLabels().values(); result = outEdgeLabels.isEmpty() && inEdgeLabels.isEmpty(); } return result; }
private boolean hasNoEdgeLabels(SchemaTable schemaTable) { Optional<Schema> schemaOptional = sqlgGraph.getTopology().getSchema(schemaTable.getSchema()); Preconditions.checkState(schemaOptional.isPresent(), "BUG: %s not found in the topology.", schemaTable.getSchema()); Schema schema = schemaOptional.get(); boolean result = true; if (schemaTable.isVertexTable()) { //Need to delete any in/out edges. Optional<VertexLabel> vertexLabelOptional = schema.getVertexLabel(schemaTable.withOutPrefix().getTable()); Preconditions.checkState(vertexLabelOptional.isPresent(), "BUG: %s not found in the topology.", schemaTable.withOutPrefix().getTable()); VertexLabel vertexLabel = vertexLabelOptional.get(); Collection<EdgeLabel> outEdgeLabels = vertexLabel.getOutEdgeLabels().values(); Collection<EdgeLabel> inEdgeLabels = vertexLabel.getInEdgeLabels().values(); result = outEdgeLabels.isEmpty() && inEdgeLabels.isEmpty(); } return result; }
Map<String, PropertyColumn> getPropertiesFor(SchemaTable schemaTable) { Preconditions.checkArgument(schemaTable.getTable().startsWith(VERTEX_PREFIX) || schemaTable.getTable().startsWith(EDGE_PREFIX), "label must start with \"%s\" or \"%s\"", Topology.VERTEX_PREFIX, Topology.EDGE_PREFIX); if (schemaTable.isVertexTable()) { Optional<VertexLabel> vertexLabelOptional = getVertexLabel(schemaTable.withOutPrefix().getTable()); if (vertexLabelOptional.isPresent()) { return vertexLabelOptional.get().getProperties(); } } else { Optional<EdgeLabel> edgeLabelOptional = getEdgeLabel(schemaTable.withOutPrefix().getTable()); if (edgeLabelOptional.isPresent()) { return edgeLabelOptional.get().getProperties(); } } return Collections.emptyMap(); }
Map<String, PropertyColumn> getPropertiesWithGlobalUniqueIndexFor(SchemaTable schemaTable) { Preconditions.checkArgument(schemaTable.getTable().startsWith(VERTEX_PREFIX) || schemaTable.getTable().startsWith(EDGE_PREFIX), "label must start with \"%s\" or \"%s\"", VERTEX_PREFIX, EDGE_PREFIX); if (schemaTable.isVertexTable()) { Optional<VertexLabel> vertexLabelOptional = getVertexLabel(schemaTable.withOutPrefix().getTable()); if (vertexLabelOptional.isPresent()) { return vertexLabelOptional.get().getGlobalUniqueIndexProperties(); } } else { Optional<EdgeLabel> edgeLabelOptional = getEdgeLabel(schemaTable.withOutPrefix().getTable()); if (edgeLabelOptional.isPresent()) { return edgeLabelOptional.get().getGlobalUniqueIndexProperties(); } } return Collections.emptyMap(); }
Map<String, PropertyColumn> getPropertiesFor(SchemaTable schemaTable) { Preconditions.checkArgument(schemaTable.getTable().startsWith(VERTEX_PREFIX) || schemaTable.getTable().startsWith(EDGE_PREFIX), "label must start with \"%s\" or \"%s\"", Topology.VERTEX_PREFIX, Topology.EDGE_PREFIX); if (schemaTable.isVertexTable()) { Optional<VertexLabel> vertexLabelOptional = getVertexLabel(schemaTable.withOutPrefix().getTable()); if (vertexLabelOptional.isPresent()) { return vertexLabelOptional.get().getProperties(); } } else { Optional<EdgeLabel> edgeLabelOptional = getEdgeLabel(schemaTable.withOutPrefix().getTable()); if (edgeLabelOptional.isPresent()) { return edgeLabelOptional.get().getProperties(); } } return Collections.emptyMap(); }
Map<String, PropertyType> getTableFor(SchemaTable schemaTable) { Preconditions.checkArgument(schemaTable.getTable().startsWith(VERTEX_PREFIX) || schemaTable.getTable().startsWith(EDGE_PREFIX), "label must start with \"%s\" or \"%s\"", VERTEX_PREFIX, EDGE_PREFIX); if (schemaTable.isVertexTable()) { Optional<VertexLabel> vertexLabelOptional = getVertexLabel(schemaTable.withOutPrefix().getTable()); if (vertexLabelOptional.isPresent()) { return vertexLabelOptional.get().getPropertyTypeMap(); } } else { Optional<EdgeLabel> edgeLabelOptional = getEdgeLabel(schemaTable.withOutPrefix().getTable()); if (edgeLabelOptional.isPresent()) { return edgeLabelOptional.get().getPropertyTypeMap(); } } return Collections.emptyMap(); }
/** * remove the given global unique index * * @param index the index to remove * @param preserveData should we keep the sql data? */ void removeGlobalUniqueIndex(GlobalUniqueIndex index, boolean preserveData) { getTopology().lock(); String fn = index.getName(); if (!uncommittedRemovedGlobalUniqueIndexes.contains(fn)) { uncommittedRemovedGlobalUniqueIndexes.add(fn); TopologyManager.removeGlobalUniqueIndex(sqlgGraph, fn); if (!preserveData) { getVertexLabel(index.getName()).ifPresent( (VertexLabel vl) -> vl.remove(false)); } getTopology().fire(index, "", TopologyChangeAction.DELETE); } }
/** * remove the given global unique index * * @param index the index to remove * @param preserveData should we keep the sql data? */ void removeGlobalUniqueIndex(GlobalUniqueIndex index, boolean preserveData) { getTopology().lock(); String fn = index.getName(); if (!uncommittedRemovedGlobalUniqueIndexes.contains(fn)) { uncommittedRemovedGlobalUniqueIndexes.add(fn); TopologyManager.removeGlobalUniqueIndex(sqlgGraph, fn); if (!preserveData) { getVertexLabel(index.getName()).ifPresent( (VertexLabel vl) -> vl.remove(false)); } getTopology().fire(index, "", TopologyChangeAction.DELETE); } }