pub enum DynProofPlan {
Empty(EmptyExec),
Table(TableExec),
Projection(ProjectionExec),
GroupBy(GroupByExec),
Filter(OstensibleFilterExec<HonestProver>),
Slice(SliceExec),
Union(UnionExec),
}
Expand description
The query plan for proving a query
Variants§
Empty(EmptyExec)
Source ProofPlan
for (sub)queries without table source such as SELECT "No table here" as msg;
Table(TableExec)
Source ProofPlan
for (sub)queries with table source such as SELECT col from tab;
Projection(ProjectionExec)
Provable expressions for queries of the form
ⓘ
SELECT <result_expr1>, ..., <result_exprN> FROM <table>
GroupBy(GroupByExec)
Provable expressions for queries of the form
ⓘ
SELECT <group_by_expr1>, ..., <group_by_exprM>,
SUM(<sum_expr1>.0) as <sum_expr1>.1, ..., SUM(<sum_exprN>.0) as <sum_exprN>.1,
COUNT(*) as count_alias
FROM <table>
WHERE <where_clause>
GROUP BY <group_by_expr1>, ..., <group_by_exprM>
Filter(OstensibleFilterExec<HonestProver>)
Provable expressions for queries of the form, where the result is sent in a dense form
ⓘ
SELECT <result_expr1>, ..., <result_exprN> FROM <table> WHERE <where_clause>
Slice(SliceExec)
ProofPlan
for queries of the form
ⓘ
<ProofPlan> LIMIT <fetch> [OFFSET <skip>]
Union(UnionExec)
ProofPlan
for queries of the form
ⓘ
<ProofPlan>
UNION ALL
<ProofPlan>
...
UNION ALL
<ProofPlan>
Trait Implementations§
Source§impl Clone for DynProofPlan
impl Clone for DynProofPlan
Source§fn clone(&self) -> DynProofPlan
fn clone(&self) -> DynProofPlan
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for DynProofPlan
impl Debug for DynProofPlan
Source§impl<'de> Deserialize<'de> for DynProofPlan
impl<'de> Deserialize<'de> for DynProofPlan
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<EmptyExec> for DynProofPlan
impl From<EmptyExec> for DynProofPlan
Source§fn from(v: EmptyExec) -> DynProofPlan
fn from(v: EmptyExec) -> DynProofPlan
Converts to this type from the input type.
Source§impl From<TableExec> for DynProofPlan
impl From<TableExec> for DynProofPlan
Source§fn from(v: TableExec) -> DynProofPlan
fn from(v: TableExec) -> DynProofPlan
Converts to this type from the input type.
Source§impl PartialEq for DynProofPlan
impl PartialEq for DynProofPlan
Source§impl ProofPlan for DynProofPlan
impl ProofPlan for DynProofPlan
Source§fn verifier_evaluate<S: Scalar>(
&self,
__enum_dispatch_arg_0: &mut VerificationBuilder<'_, S>,
__enum_dispatch_arg_1: &IndexMap<ColumnRef, S, BuildHasherDefault<AHasher>>,
__enum_dispatch_arg_2: Option<&OwnedTable<S>>,
__enum_dispatch_arg_3: &IndexMap<TableRef, S, BuildHasherDefault<AHasher>>,
) -> Result<TableEvaluation<S>, ProofError>
fn verifier_evaluate<S: Scalar>( &self, __enum_dispatch_arg_0: &mut VerificationBuilder<'_, S>, __enum_dispatch_arg_1: &IndexMap<ColumnRef, S, BuildHasherDefault<AHasher>>, __enum_dispatch_arg_2: Option<&OwnedTable<S>>, __enum_dispatch_arg_3: &IndexMap<TableRef, S, BuildHasherDefault<AHasher>>, ) -> Result<TableEvaluation<S>, ProofError>
Form components needed to verify and proof store into VerificationBuilder
Source§fn get_column_result_fields(&self) -> Vec<ColumnField>
fn get_column_result_fields(&self) -> Vec<ColumnField>
Return all the result column fields
Source§fn get_column_references(
&self,
) -> IndexSet<ColumnRef, BuildHasherDefault<AHasher>>
fn get_column_references( &self, ) -> IndexSet<ColumnRef, BuildHasherDefault<AHasher>>
Return all the columns referenced in the Query
Source§fn get_table_references(
&self,
) -> IndexSet<TableRef, BuildHasherDefault<AHasher>>
fn get_table_references( &self, ) -> IndexSet<TableRef, BuildHasherDefault<AHasher>>
Return all the tables referenced in the Query
Source§impl Serialize for DynProofPlan
impl Serialize for DynProofPlan
Source§impl TryInto<EmptyExec> for DynProofPlan
impl TryInto<EmptyExec> for DynProofPlan
Source§impl TryInto<TableExec> for DynProofPlan
impl TryInto<TableExec> for DynProofPlan
impl StructuralPartialEq for DynProofPlan
Auto Trait Implementations§
impl Freeze for DynProofPlan
impl RefUnwindSafe for DynProofPlan
impl Send for DynProofPlan
impl Sync for DynProofPlan
impl Unpin for DynProofPlan
impl UnwindSafe for DynProofPlan
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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