Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor!: rename ResultBuilder to FirstRoundBuilder, ProofBuilder to FinalRoundBuilder && split first round proof out of ProofPlan::result_evaluate #257

Merged
merged 4 commits into from
Oct 11, 2024

Conversation

iajoiner
Copy link
Contributor

@iajoiner iajoiner commented Oct 11, 2024

Please be sure to look over the pull request guidelines here: https://github.com/spaceandtimelabs/sxt-proof-of-sql/blob/main/CONTRIBUTING.md#submit-pr.

Please go through the following checklist

Rationale for this change

ResultBuilder isn't really needed for result_evaluate when all we need are input table lengths. However it is crucial in producing the query proof. Hence we need to remove it from the actual query result computation process (expr.result_evaluate). At the same time it should be correctly named as builder of the first round of the proof because that's what it is.

What changes are included in this PR?

The 4 commits are supposed to be reviewed individually.

  • rename ResultBuilder to FirstRoundBuilder, ProofBuilder to FinalRoundBuilder.
  • rename proof-of-sql/src/sql/proof/result_builder.rs to first_round_builder.rs, proof-of-sql/src/sql/proof/proof_builder.rs to final_round_builder.rs.
  • split out post result challenges into ProofPlan::first_round_evaluate
  • replace FirstRoundBuilder in result_evaluate with input_length
  • rename ProverEvaluate::prover_evaluate to final_round_evaluate

Are these changes tested?

Yes

@iajoiner iajoiner marked this pull request as ready for review October 11, 2024 04:19
@iajoiner iajoiner changed the title refactor!: rename ResultBuilder to FirstRoundBuilder refactor!: rename ResultBuilder to FirstRoundBuilder, ProofBuilder to FinalRoundBuilder && split first round proof out of result_evaluate Oct 11, 2024
@iajoiner iajoiner changed the title refactor!: rename ResultBuilder to FirstRoundBuilder, ProofBuilder to FinalRoundBuilder && split first round proof out of result_evaluate refactor!: rename ResultBuilder to FirstRoundBuilder, ProofBuilder to FinalRoundBuilder && split first round proof out of ProofPlan::result_evaluate Oct 11, 2024
@iajoiner iajoiner requested a review from JayWhite2357 October 11, 2024 04:21
@iajoiner iajoiner enabled auto-merge October 11, 2024 04:32
- rename `ResultBuilder` to `FirstRoundBuilder`
- rename `proof-of-sql/src/sql/proof/result_builder.rs` to `first_round_builder.rs`
- rename `ProofBuilder` to `FinalRoundBuilder`
- rename `proof-of-sql/src/sql/proof/proof_builder.rs` to `final_round_builder.rs`
…luate`

- split out post result challenges into `ProofPlan::first_round_evaluate`
- replace `FirstRoundBuilder` in `result_evaluate` with `input_length`
Copy link
Contributor

@JayWhite2357 JayWhite2357 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@iajoiner iajoiner merged commit 140faf1 into main Oct 11, 2024
11 checks passed
@iajoiner iajoiner deleted the refactor/rounds branch October 11, 2024 05:53
iajoiner added a commit that referenced this pull request Dec 4, 2024
Please be sure to look over the pull request guidelines here:
https://github.com/spaceandtimelabs/sxt-proof-of-sql/blob/main/CONTRIBUTING.md#submit-pr.

# Please go through the following checklist
- [x] The PR title and commit messages adhere to guidelines here:
https://github.com/spaceandtimelabs/sxt-proof-of-sql/blob/main/CONTRIBUTING.md.
In particular `!` is used if and only if at least one breaking change
has been introduced.
- [x] I have run the ci check script with `source
scripts/run_ci_checks.sh`.

# Rationale for this change
Since we are adding range check which will require `FirstRoundBuilder`
to read query results we partly undo #257 and merge
`ProofPlan::result_evaluate` back into
`ProofPlan::first_round_evaluate`.
<!--
Why are you proposing this change? If this is already explained clearly
in the linked issue then this section is not needed.
Explaining clearly why changes are proposed helps reviewers understand
your changes and offer better suggestions for fixes.

 Example:
 Add `NestedLoopJoinExec`.
 Closes #345.

Since we added `HashJoinExec` in #323 it has been possible to do
provable inner joins. However performance is not satisfactory in some
cases. Hence we need to fix the problem by implement
`NestedLoopJoinExec` and speed up the code
 for `HashJoinExec`.
-->

# What changes are included in this PR?
See above.
<!--
There is no need to duplicate the description in the ticket here but it
is sometimes worth providing a summary of the individual changes in this
PR.

Example:
- Add `NestedLoopJoinExec`.
- Speed up `HashJoinExec`.
- Route joins to `NestedLoopJoinExec` if the outer input is sufficiently
small.
-->

# Are these changes tested?
<!--
We typically require tests for all PRs in order to:
1. Prevent the code from being accidentally broken by subsequent changes
2. Serve as another way to document the expected behavior of the code

If tests are not included in your PR, please explain why (for example,
are they covered by existing tests)?

Example:
Yes.
-->
Yes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants