Struct expr_test_util::MirRelationExprDeserializeContext [−][src]
pub struct MirRelationExprDeserializeContext<'a> {
pub(crate) inner_ctx: MirScalarExprDeserializeContext,
pub(crate) catalog: &'a TestCatalog,
pub(crate) scope: Scope,
}
Expand description
Extends the test case syntax to support MirRelationExpr
s
A new context should be created for the deserialization of each
MirRelationExpr
because the context stores state local to
each MirRelationExpr
.
Includes all the test case syntax extensions to support
MirScalarExpr
s.
The following variants of MirRelationExpr
have non-standard syntax:
Let -> the syntax is (let x <value> <body>)
where x is an ident that
should not match any existing ident in any Let statement in
<value>
.
Get -> the syntax is (get x)
, where x is an ident that refers to a
pre-defined source or an ident defined in a let.
Union -> the syntax is (union <input1> .. <inputn>)
.
Constant -> the syntax is
(constant
[[<row1literal1>..<row1literaln>]..[<rowiliteral1>..<rowiliteraln>]]
<RelationType>
)
For convenience, a usize can be alternately specified as #n
.
We recommend specifying a usize as #n
instead of n
when the usize
is a column reference.
Fields
inner_ctx: MirScalarExprDeserializeContext
catalog: &'a TestCatalog
scope: Scope
Tracks local references when converting spec to JSON. Tracks global references not found in the catalog when converting from JSON to spec.
Implementations
pub(crate) fn build_constant<I>(
&mut self,
stream_iter: &mut I
) -> Result<MirRelationExpr, String> where
I: Iterator<Item = TokenTree>,
pub(crate) fn build_constant_err<I>(
&mut self,
stream_iter: &mut I
) -> Result<MirRelationExpr, String> where
I: Iterator<Item = TokenTree>,
pub(crate) fn build_let<I>(
&mut self,
stream_iter: &mut I
) -> Result<MirRelationExpr, String> where
I: Iterator<Item = TokenTree>,
pub(crate) fn build_union<I>(
&mut self,
stream_iter: &mut I
) -> Result<MirRelationExpr, String> where
I: Iterator<Item = TokenTree>,
pub(crate) fn build_special_mir_if_able<I>(
&mut self,
first_arg: TokenTree,
rest_of_stream: &mut I
) -> Result<Option<MirRelationExpr>, String> where
I: Iterator<Item = TokenTree>,
Trait Implementations
Override the way that first_arg
is resolved to JSON. Read more
fn reverse_syntax_override(
&mut self,
json: &Value,
type_name: &str,
rti: &ReflectedTypeInfo
) -> Option<String>
fn reverse_syntax_override(
&mut self,
json: &Value,
type_name: &str,
rti: &ReflectedTypeInfo
) -> Option<String>
Converts json
back to the extended syntax specified by
TestDeserializeContext::override_syntax. Read more
Auto Trait Implementations
impl<'a> RefUnwindSafe for MirRelationExprDeserializeContext<'a>
impl<'a> Send for MirRelationExprDeserializeContext<'a>
impl<'a> Sync for MirRelationExprDeserializeContext<'a>
impl<'a> Unpin for MirRelationExprDeserializeContext<'a>
impl<'a> UnwindSafe for MirRelationExprDeserializeContext<'a>
Blanket Implementations
Mutably borrows from an owned value. Read more
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more