Skip to content

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

@roji

Description

@roji

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.

Metadata

Metadata

Assignees

Labels

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions