refactor!: move table_length
to FirstRoundBuilder
#380
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
!
is used if and only if at least one breaking change has been introduced.source scripts/run_ci_checks.sh
.Rationale for this change
Currently there are still places where
FinalRoundBuilder::table_length
is used inProofExpr
which is wrong when we start composingProofPlan
s. Moreover in cases where aProofPlan
causes its output table to be longer than any of the input tables (e.g. joins and unions) we need to bump themax_row_num
.What changes are included in this PR?
table_length
fromFinalRoundBuilder
range_length
toFirstRoundBuilder
to track the max table length in a query (updates are NOT to be applied to anyProofPlan
that can not cause its output table to have more rows than any of its inputs such as filter and projection)range_length
afterFirstRoundBuilder
goes through the ASTmin_row_num
andmax_row_num
inQueryProof
for the verifierFirstRoundBuilder
from exclusivelyresult_evaluate
testsAre these changes tested?
Existing tests should pass.