pub enum DynProofPlan {
Empty(EmptyExec),
Table(TableExec),
Projection(ProjectionExec),
GroupBy(GroupByExec),
Filter(OstensibleFilterExec<HonestProver>),
}
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>
Trait Implementations§
Source§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 count(
&self,
__enum_dispatch_arg_0: &mut CountBuilder<'_>,
) -> Result<(), ProofError>
fn count( &self, __enum_dispatch_arg_0: &mut CountBuilder<'_>, ) -> Result<(), ProofError>
Count terms used within the Query’s proof
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>>,
) -> Result<Vec<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>>, ) -> Result<Vec<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> 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