Skip to main content

GraphStats

Struct GraphStats 

Source
pub struct GraphStats {
Show 14 fields pub node_count: usize, pub relationship_count: usize, pub nodes_by_label: BTreeMap<String, usize>, pub relationships_by_type: BTreeMap<String, usize>, pub node_distinct_values: BTreeMap<(String, String), usize>, pub relationship_distinct_values: BTreeMap<(String, String), usize>, pub node_range_indexes: BTreeSet<(String, String)>, pub relationship_range_indexes: BTreeSet<(String, String)>, pub node_text_indexes: BTreeSet<(String, String)>, pub relationship_text_indexes: BTreeSet<(String, String)>, pub node_point_indexes: BTreeSet<(String, String)>, pub relationship_point_indexes: BTreeSet<(String, String)>, pub node_vector_indexes: BTreeSet<(String, String)>, pub relationship_vector_indexes: BTreeSet<(String, String)>,
}
Expand description

Snapshot of graph cardinality. Populated by the storage backend (see [super::InMemoryGraph::stats]).

Fields§

§node_count: usize

Total live node count.

§relationship_count: usize

Total live relationship count.

§nodes_by_label: BTreeMap<String, usize>

Per-label node count. nodes_by_label[label].len().

§relationships_by_type: BTreeMap<String, usize>

Per-rel-type relationship count. relationships_by_type[type].len().

§node_distinct_values: BTreeMap<(String, String), usize>

Per-(label, property) approximate distinct value count, when a property index is active. Empty for non-indexed columns — the optimizer falls back to “all rows distinct” for those.

§relationship_distinct_values: BTreeMap<(String, String), usize>§node_range_indexes: BTreeSet<(String, String)>

Online catalog-backed range indexes by (label_or_type, property).

§relationship_range_indexes: BTreeSet<(String, String)>§node_text_indexes: BTreeSet<(String, String)>

Online catalog-backed text indexes by (label_or_type, property).

§relationship_text_indexes: BTreeSet<(String, String)>§node_point_indexes: BTreeSet<(String, String)>

Online catalog-backed point indexes by (label_or_type, property).

§relationship_point_indexes: BTreeSet<(String, String)>§node_vector_indexes: BTreeSet<(String, String)>

Online catalog-backed vector indexes by (label_or_type, property). Tracked alongside the other index scopes so the optimizer / planner can see them in stats fingerprints, though kNN currently goes through a flat per-query scan rather than a dedicated structure.

§relationship_vector_indexes: BTreeSet<(String, String)>

Implementations§

Source§

impl GraphStats

Source

pub fn estimate_node_property_equality( &self, label: &str, property: &str, ) -> Option<u64>

Selectivity of an equality predicate label:prop = value. Returns Some(rows) when we have enough info to answer; None when the optimizer should fall back to its conservative default.

Source

pub fn label_count(&self, label: &str) -> Option<u64>

Source

pub fn relationship_type_count(&self, rel_type: &str) -> Option<u64>

Source

pub fn fingerprint(&self) -> u64

Source

pub fn has_node_range_index(&self, label: &str, property: &str) -> bool

Source

pub fn has_node_text_index(&self, label: &str, property: &str) -> bool

Source

pub fn has_node_point_index(&self, label: &str, property: &str) -> bool

Source

pub fn has_relationship_range_index( &self, rel_type: &str, property: &str, ) -> bool

Source

pub fn has_relationship_text_index( &self, rel_type: &str, property: &str, ) -> bool

Source

pub fn has_relationship_point_index( &self, rel_type: &str, property: &str, ) -> bool

Source

pub fn has_node_vector_index(&self, label: &str, property: &str) -> bool

Source

pub fn has_relationship_vector_index( &self, rel_type: &str, property: &str, ) -> bool

Trait Implementations§

Source§

impl Clone for GraphStats

Source§

fn clone(&self) -> GraphStats

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for GraphStats

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for GraphStats

Source§

fn default() -> GraphStats

Returns the “default value” for a type. Read more
Source§

impl PartialEq for GraphStats

Source§

fn eq(&self, other: &GraphStats) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for GraphStats

Source§

impl StructuralPartialEq for GraphStats

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.