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

feat: generalize DenseFilterExpr #8

Merged
merged 1 commit into from
Jun 18, 2024

Conversation

iajoiner
Copy link
Contributor

@iajoiner iajoiner commented Jun 13, 2024

Rationale for this change

It is necessary to move provable projections into the prover so that provable queries do not need postprocessing. This is the first PR of the change which is to move provable projections to the prover for filter queries.

What changes are included in this PR?

  • Move Expression -> ProvableExprPlan to a separate struct, ProvableExprPlanBuilder since the process is no longer for where clauses only.
  • Add EnrichedExpr to be equivalent to the provable version of Expr in DataFusion for tamperproof queries.
  • Allow arbitrary aliased provable expressions as result expressions in dense filters.
  • Remove constraints in QueryContext that prevents constants from being used in select.

Are these changes tested?

Existing tests should pass. New tests will be added to cover nontrivial results such as select a and b as c, d, 4 as f from tab where d = e.

@iajoiner iajoiner force-pushed the feat/generalize-dense-filter-expr branch 3 times, most recently from d818dcb to 124c93a Compare June 14, 2024 02:20
@iajoiner iajoiner force-pushed the feat/generalize-dense-filter-expr branch 4 times, most recently from 656c36d to 94bc09b Compare June 14, 2024 07:28
@iajoiner iajoiner marked this pull request as ready for review June 14, 2024 07:29
@iajoiner iajoiner force-pushed the feat/generalize-dense-filter-expr branch 3 times, most recently from 5810b60 to 63f9806 Compare June 14, 2024 14:59
JayWhite2357
JayWhite2357 previously approved these changes Jun 18, 2024
- Move `Expression` -> `ProvableExprPlan` to a separate struct, `ProvableExprPlanBuilder` since the process is no longer for where clauses only.
- Add `EnrichedExpr` to be equivalent to the provable version of Expr in DataFusion
- Allow arbitrary aliased provable expressions as result expressions in dense filters.
- Remove constraints in `QueryContext` that prevents constants from being used in select.
@iajoiner iajoiner force-pushed the feat/generalize-dense-filter-expr branch from d9bf808 to 1904526 Compare June 18, 2024 17:39
@iajoiner iajoiner merged commit 4e1d994 into main Jun 18, 2024
8 checks passed
@iajoiner iajoiner deleted the feat/generalize-dense-filter-expr branch June 18, 2024 19:19
Copy link

🎉 This PR is included in version 0.2.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

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