Given a set of labels that a node definitely has, returns all combinations of labels that the node could possibly have.
Returns the sub-schema for a node scan under the given constraints.
Returns the sub-schema for a node scan under the given constraints. Labels are interpreted as constraints on the resulting Schema. If no labels are specified, this means the resulting node can have any valid label combination.
Specifies the labels that the node is guaranteed to have
sub-schema for labelConstraints
Returns the sub-schema for relType
Returns the sub-schema for relType
Specifies the type for which the schema is extracted
sub-schema for relType
Given the current schema, construct a new Schema for an entity with a given set of labels.
Given the current schema, construct a new Schema for an entity with a given set of labels. If the set of labels is empty, this means that the resulting schema will only have properties present on nodes that have no labels.
labels present on the node entity
Given a set of labels that a node definitely has, returns all labels the node _must_ have.
Given a set of labels that a node definitely has, returns all labels the node _must_ have.
Implied labels for each existing label
Returns the property keys that exist on any of the labels.
Returns the property keys that exist on any of the labels. Types of conflicting property keys are joined.
labels for which to return the property keys
property keys for labels
Computes property keys for the set of label combinations.
Computes property keys for the set of label combinations.
label combinations to consider.
typed property keys, with joined or nullable types for conflicts.
Groups of labels where each group contains possible label combinations.
Computes the type (if any) for a property given a predicate of labels.
Computes the type (if any) for a property given a predicate of labels.
the labels predicate; either a lower bound of expected labels, or a disjunction of possible labels
the property key
the Cypher type, if any, mapped to the key for nodes that pass the predicate
Given a set of labels that a node definitely has, returns its property schema.
Given a set of labels that a node definitely has, returns its property schema.
TODO: consider implied labels here?
Returns the property schema for a given relationship type
Adds information about a label and its associated properties to the schema.
Adds information about a label and its associated properties to the schema. The arguments provided to this method are interpreted as describing a whole piece of information, meaning that for a specific instance of the label, the given properties were present in their exact given shape. For example, consider
val s = schema.withNodePropertyKeys("Foo")("p" -> CTString, "q" -> CTInteger) val t = s.withNodePropertyKeys("Foo")("p" -> CTString)
The resulting schema (assigned to t) will indicate that the type of q is CTInteger.nullable,
as the schema understands that it is possible to map :Foo to both sets of properties, and it
calculates the join of the property types, respectively.
the node labels to add to the schema
the typed property keys to associate with the labels
a copy of the Schema with the provided new data
Adds information about a relationship type and its associated properties to the schema.
Adds information about a relationship type and its associated properties to the schema. The arguments provided to this method are interpreted as describing a whole piece of information, meaning that for a specific instance of the relationship type, the given properties were present in their exact given shape. For example, consider
val s = schema.withRelationshipPropertyKeys("FOO")("p" -> CTString, "q" -> CTInteger) val t = s.withRelationshipPropertyKeys("FOO")("p" -> CTString)
The resulting schema (assigned to t) will indicate that the type of q is CTInteger.nullable,
as the schema understands that it is possible to map :FOO to both sets of properties, and it
calculates the join of the property types, respectively.
the relationship type to add to the schema
the properties (name and type) to associate with the relationship type
a copy of the Schema with the provided new data