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

Query: Allow providers to influence funcletization on low level #14507

Closed
smitpatel opened this issue Jan 24, 2019 · 3 comments
Closed

Query: Allow providers to influence funcletization on low level #14507

smitpatel opened this issue Jan 24, 2019 · 3 comments
Labels
closed-out-of-scope This is not something that will be fixed/implemented and the issue is closed.

Comments

@smitpatel
Copy link
Member

Currently, our funcletization is influenced by providers in 2 ways.

  • Indicating that certain expression should not be evaluated on server. (mainly non-deterministic ones)
  • NotParameterizedAttribute to avoid parameterization of any function's parameter.

Both of above works fine till you encounter a method which is coming from other library. This disallows you from putting the attribute on parameter. And in order to determine that the function parameter should not be converted to query parameter, you need more info on parent expression tree to look at the function.
One such example is
string.Compare(string s1, string s2, bool ignoreCase);

@pmiddleton
Copy link
Contributor

@smitpatel -

Has there been any discussion within the team of my idea to centralize all function registration into a single metadata store?

If we do that then this use case becomes easy to solve because the end user can modify all of the functions via the fluent api. That also assumes we add a way to mark a parameter as NotParameterized which wouldn't be difficult.

@smitpatel
Copy link
Member Author

@pmiddleton - I had some thoughts about it. But can you elaborate more in this case, how it could be used. If user is using Fluent API for function (like they do for DbFunction) the translation path becomes much different. Further, that is user specific modification, while here we want to provide provider specific modification since provider is bringing the translation too.

@smitpatel
Copy link
Member Author

Rather than putting complexity in funcletization it would be better handled in RelationalCommandCache.

@ajcvickers ajcvickers removed this from the Backlog milestone Nov 10, 2021
@ajcvickers ajcvickers added the closed-out-of-scope This is not something that will be fixed/implemented and the issue is closed. label Mar 10, 2022
@ajcvickers ajcvickers reopened this Oct 16, 2022
@ajcvickers ajcvickers closed this as not planned Won't fix, can't repro, duplicate, stale Oct 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
closed-out-of-scope This is not something that will be fixed/implemented and the issue is closed.
Projects
None yet
Development

No branches or pull requests

3 participants