proof_of_sql::sql::proof

Trait ProofPlan

Source
pub trait ProofPlan<C: Commitment>:
    Debug
    + Send
    + Sync
    + ProverEvaluate<C::Scalar> {
    // Required methods
    fn count(
        &self,
        builder: &mut CountBuilder<'_>,
        accessor: &dyn MetadataAccessor,
    ) -> Result<(), ProofError>;
    fn get_length(&self, accessor: &dyn MetadataAccessor) -> usize;
    fn get_offset(&self, accessor: &dyn MetadataAccessor) -> usize;
    fn verifier_evaluate(
        &self,
        builder: &mut VerificationBuilder<'_, C>,
        accessor: &dyn CommitmentAccessor<C>,
        result: Option<&OwnedTable<C::Scalar>>,
    ) -> Result<Vec<C::Scalar>, ProofError>;
    fn get_column_result_fields(&self) -> Vec<ColumnField>;
    fn get_column_references(
        &self,
    ) -> IndexSet<ColumnRef, BuildHasherDefault<AHasher>>;
    fn get_table_references(
        &self,
    ) -> IndexSet<TableRef, BuildHasherDefault<AHasher>>;

    // Provided method
    fn is_empty(&self, accessor: &dyn MetadataAccessor) -> bool { ... }
}
Expand description

Provable nodes in the provable AST.

Required Methods§

Source

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

The length of the input table

Source

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>

Form components needed to verify and proof store into VerificationBuilder

Source

fn get_column_result_fields(&self) -> Vec<ColumnField>

Return all the result column fields

Source

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>>

Return all the tables referenced in the Query

Provided Methods§

Source

fn is_empty(&self, accessor: &dyn MetadataAccessor) -> bool

Check if the input table is empty

Implementors§