-
Notifications
You must be signed in to change notification settings - Fork 3.2k
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
Optionally enable server-evaluation for non-correlated query fragments #23819
Comments
@ajcvickers the NTS plugin can already opt specific methods out of client evaluation via evaluatable filters (I think this is what @smitpatel referred to in the meeting), so if we decide we want to always exclude certain methods, we can already do that. This issue still makes sense as an application opt-out (i.e. via EF.ServerEval() or similar) |
We can add this to design meeting if people want to discuss in detail.
The flipside of "forcing" server eval of some expression in the query is that, there needs to be server equivalent translation for it else it will be translation failure. Currently translation comes from core provider, plugins and UDFs.
Only case right now where the opt-out would actually work where the code did not opt-out when adding translation by error. So we should wait for a case where this actually helps. |
We discussed this in triage and the value proposition of having a general way of forcing server evaluation is low value and high cost. We'll handle specific cases like NTS when needed. |
See #23764. We typically evaluate expressions on the client when they are not correlated to any database object. This greatly helps creation of efficient parameters. However, this can be problematic when the database evaluation returns different results than the database translation. This can be opted into in the place handling the translation--for example the NTS plugin in this case. However, it could also be useful to allow this be be opted into by the application.
The text was updated successfully, but these errors were encountered: