mz_expr_parser::catalog

Struct TestCatalog

Source
pub struct TestCatalog {
    objects: BTreeMap<String, (GlobalId, Vec<String>, RelationType)>,
    names: BTreeMap<GlobalId, String>,
}
Expand description

A catalog that holds types of objects previously created for the unit test.

This is for the purpose of allowing MirRelationExprs to refer to them later.

Fields§

§objects: BTreeMap<String, (GlobalId, Vec<String>, RelationType)>§names: BTreeMap<GlobalId, String>

Implementations§

Source§

impl<'a> TestCatalog

Source

pub fn insert( &mut self, name: &str, cols: Vec<String>, typ: RelationType, transient: bool, ) -> Result<GlobalId, String>

Registers an object in the catalog.

Specifying transient as true allows the object to be deleted by Self::remove_transient_objects.

Returns the GlobalId assigned by the catalog to the object.

Errors if an object of the same name is already in the catalog.

Source

pub fn get( &'a self, name: &str, ) -> Option<&'a (GlobalId, Vec<String>, RelationType)>

Source

pub fn get_source_name(&'a self, id: &GlobalId) -> Option<&'a String>

Looks up the name of the object referred to as id.

Source

pub fn remove_transient_objects(&mut self)

Clears all transient objects from the catalog.

Trait Implementations§

Source§

impl Debug for TestCatalog

Source§

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

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

impl Default for TestCatalog

Source§

fn default() -> TestCatalog

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

impl ExprHumanizer for TestCatalog

Source§

fn humanize_id(&self, id: GlobalId) -> Option<String>

Attempts to return a human-readable string for the relation identified by id.
Source§

fn humanize_id_unqualified(&self, id: GlobalId) -> Option<String>

Same as above, but without qualifications, e.g., only foo for materialize.public.foo.
Source§

fn humanize_id_parts(&self, id: GlobalId) -> Option<Vec<String>>

Like Self::humanize_id, but returns the constituent parts of the name as individual elements.
Source§

fn humanize_scalar_type(&self, ty: &ScalarType, postgres_compat: bool) -> String

Returns a human-readable name for the specified scalar type. Used in, e.g., EXPLAIN and error msgs, in which case exact Postgres compatibility is less important than showing as much detail as possible. Also used in pg_typeof, where Postgres compatibility is more important.
Source§

fn column_names_for_id(&self, id: GlobalId) -> Option<Vec<String>>

Returns a vector of column names for the relation identified by id.
Source§

fn humanize_column(&self, id: GlobalId, column: usize) -> Option<String>

Returns the #column name for the relation identified by id.
Source§

fn id_exists(&self, id: GlobalId) -> bool

Returns whether the specified id exists.
Source§

fn humanize_column_type( &self, typ: &ColumnType, postgres_compat: bool, ) -> String

Returns a human-readable name for the specified column type. Used in, e.g., EXPLAIN and error msgs, in which case exact Postgres compatibility is less important than showing as much detail as possible. Also used in pg_typeof, where Postgres compatibility is more important.

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, U> CastInto<U> for T
where U: CastFrom<T>,

Source§

fn cast_into(self) -> U

Performs the cast.
Source§

impl<T> CopyAs<T> for T

Source§

fn copy_as(self) -> T

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<T, U> OverrideFrom<Option<&T>> for U
where U: OverrideFrom<T>,

Source§

fn override_from(self, layer: &Option<&T>) -> U

Override the configuration represented by Self with values from the given layer.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize = _

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<P, R> ProtoType<R> for P
where R: RustType<P>,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<'a, S, T> Semigroup<&'a S> for T
where T: Semigroup<S>,

Source§

fn plus_equals(&mut self, rhs: &&'a S)

The method of std::ops::AddAssign, for types that do not implement AddAssign.
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,