pub enum DynProofPlan<C: Commitment> {
Projection(ProjectionExec<C>),
GroupBy(GroupByExec<C>),
Filter(OstensibleFilterExec<C, HonestProver>),
}
Expand description
The query plan for proving a query
Variants§
Projection(ProjectionExec<C>)
Provable expressions for queries of the form
ⓘ
SELECT <result_expr1>, ..., <result_exprN> FROM <table>
GroupBy(GroupByExec<C>)
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<C, 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<C: Debug + Commitment> Debug for DynProofPlan<C>
impl<C: Debug + Commitment> Debug for DynProofPlan<C>
source§impl<'de, C> Deserialize<'de> for DynProofPlan<C>where
C: Deserialize<'de> + Commitment,
impl<'de, C> Deserialize<'de> for DynProofPlan<C>where
C: Deserialize<'de> + Commitment,
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<C: PartialEq + Commitment> PartialEq for DynProofPlan<C>
impl<C: PartialEq + Commitment> PartialEq for DynProofPlan<C>
source§impl<C: Commitment> ProofPlan<C> for DynProofPlan<C>
impl<C: Commitment> ProofPlan<C> for DynProofPlan<C>
source§fn count(
&self,
builder: &mut CountBuilder<'_>,
accessor: &dyn MetadataAccessor,
) -> Result<(), ProofError>
fn count( &self, builder: &mut CountBuilder<'_>, accessor: &dyn MetadataAccessor, ) -> Result<(), ProofError>
Count terms used within the Query’s proof
source§fn get_length(&self, accessor: &dyn MetadataAccessor) -> usize
fn get_length(&self, accessor: &dyn MetadataAccessor) -> usize
The length of the input table
source§fn get_offset(&self, accessor: &dyn MetadataAccessor) -> usize
fn get_offset(&self, accessor: &dyn MetadataAccessor) -> usize
The offset of the query, that is, how many rows to skip before starting to read the input table
source§fn verifier_evaluate(
&self,
builder: &mut VerificationBuilder<'_, C>,
accessor: &dyn CommitmentAccessor<C>,
result: Option<&OwnedTable<C::Scalar>>,
) -> Result<Vec<C::Scalar>, ProofError>
fn verifier_evaluate( &self, builder: &mut VerificationBuilder<'_, C>, accessor: &dyn CommitmentAccessor<C>, result: Option<&OwnedTable<C::Scalar>>, ) -> Result<Vec<C::Scalar>, 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 is_empty(&self, accessor: &dyn MetadataAccessor) -> bool
fn is_empty(&self, accessor: &dyn MetadataAccessor) -> bool
Check if the input table is empty
source§impl<C> Serialize for DynProofPlan<C>where
C: Serialize + Commitment,
impl<C> Serialize for DynProofPlan<C>where
C: Serialize + Commitment,
impl<C: Commitment> StructuralPartialEq for DynProofPlan<C>
Auto Trait Implementations§
impl<C> Freeze for DynProofPlan<C>
impl<C> RefUnwindSafe for DynProofPlan<C>
impl<C> Send for DynProofPlan<C>
impl<C> Sync for DynProofPlan<C>
impl<C> Unpin for DynProofPlan<C>
impl<C> UnwindSafe for DynProofPlan<C>
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