Skip to main content

RowLookup

Trait RowLookup 

Source
pub trait RowLookup {
    // Required methods
    fn column(&self, name: &str) -> Option<&Value>;
    fn qualified_column(&self, qualifier: &str, column: &str) -> Option<&Value>;

    // Provided methods
    fn column_is_ambiguous(&self, _name: &str) -> bool { ... }
    fn qualified_column_is_ambiguous(
        &self,
        _qualifier: &str,
        _column: &str,
    ) -> bool { ... }
    fn positional_column(&self, _index: usize) -> Option<&Value> { ... }
    fn visit_columns(&self, _visitor: &mut dyn FnMut(&str, &Value)) { ... }
}
Expand description

Read-only row interface used by the expression evaluator. Most callers use a materialised ResultRow, while hot execution paths can expose a projected value slice without rebuilding a string-keyed map for every row.

Required Methods§

Source

fn column(&self, name: &str) -> Option<&Value>

Source

fn qualified_column(&self, qualifier: &str, column: &str) -> Option<&Value>

Provided Methods§

Source

fn column_is_ambiguous(&self, _name: &str) -> bool

Whether an unqualified name identifies more than one visible input column. Callers must report SQLSTATE 42702 instead of selecting an arbitrary suffix match.

Source

fn qualified_column_is_ambiguous(&self, _qualifier: &str, _column: &str) -> bool

Whether a qualified identity names more than one visible input column.

Source

fn positional_column(&self, _index: usize) -> Option<&Value>

Return a value by the physical schema position used to construct this row view. Materialized named rows do not expose positional access; projected execution sources override it so compiled hot paths can avoid repeating string lookup for every expression and row.

Source

fn visit_columns(&self, _visitor: &mut dyn FnMut(&str, &Value))

Visit every logical column in schema order. Named rows use their map order; positional execution rows override this without materializing a map. The default keeps narrow projected lookup implementations source compatible when they deliberately do not expose whole-row semantics.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§