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

Allow stripping away the expression tree interpreter (query pre-processing) #29858

Open
Tracked by #34446 ...
roji opened this issue Dec 14, 2022 · 0 comments
Open
Tracked by #34446 ...

Comments

@roji
Copy link
Member

roji commented Dec 14, 2022

The expression tree interpreter is required for all forms of client evaluation (in ParameterExtractingEV, in top-level Select). This adds around 3.9MB of size,

  • In an ideal world, our AOT static analysis would extract client-eval fragments, generate C# code from them and wire that up to precompiled query evaluation. This would be challenging to do; ParameterExtractingEV is responsible for identifying client-evaluatable fragments in the tree (consulting EvaluatableFilters from the provider, plugins). It would have to somehow export this information out, or we'd need to infer it from comparing the original tree with the result coming out of parameter extraction.
  • Alternatively, we could disable client evaluation, forcing users to avoid it. This would like be opt-in ("extreme mode" feature flag), though we may consider doing this by default.
@roji roji self-assigned this Dec 14, 2022
@roji roji mentioned this issue Dec 14, 2022
38 tasks
@ajcvickers ajcvickers added this to the Backlog milestone Dec 21, 2022
@AndriySvyryd AndriySvyryd changed the title Opportunities to reduce binary size with trimming/NativeAOT Allow striping away the expression tree interpreter (query pre-processing) Jul 22, 2023
@roji roji changed the title Allow striping away the expression tree interpreter (query pre-processing) Allow stripping away the expression tree interpreter (query pre-processing) Dec 21, 2023
@roji roji mentioned this issue Aug 15, 2024
24 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants