-
Notifications
You must be signed in to change notification settings - Fork 141
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
Deprecate legacy query processing code #787
Comments
Here are the test results if v1 engine is disabled -- test-results-no-v1-sql.txt. There are 442 failing tests but 383 of those request JSON format which forces the plugin to use v1 engine. They will need to be updated to see if they fail in the v2 engine. |
Thanks for the info! JSON formatter was the default long time ago and gave user original SearchHits response. We may need to discuss or collect feedback if we should support it in v2 engine for backward compatibility. For now, I'm thinking we can tweak fallback code to allow v2 engine process those queries. We just need to check if any syntax/semantic/execution error thrown and ignore assert failure in those IT. Thanks! Code:
|
@dai-chen we should update V2 engine to output in JSON so that we don't fall back. That should be one of the items in "Query and other statement unsupported in v2 can migrate later:" section I'm thinking. |
Sure. The "JSON" formatter means OpenSearch DSL response format actually. As S3, Prometheus and other data sources added, probably we need to re-define it if we want to migrate it too. |
@dai-chen this is a list of missing features based on the test results I posted earlier. Bugs
Missing Scalar Functions
Missing Aggregate Functions
Relevance Functions
Time/date
Missing SQL features
{
"query": "SELECT * FROM index LIMIT 1000",
"filter": { "range": { "age": {"gt":24} } }
}
|
For reference, the information above is summarized in this project. |
Sharing my thought on the priority for any feedback.
|
sanity_integration_tests.txt results:There are more test cases that fail that are not listed below. These cases are giving the same results as the results of the database being compared to, the only difference would be the function signature or data types. Therefore, those tests are not failures due to lack of support and won’t be listed below. Failures for both engines:
Failures for v2 and not legacy:
tableau_integration_tests.txt results:v2 failures: 141 Failures for v2 and not legacy:
|
History
Nowadays most of the user queries are processed by our enhanced SQL engine v2. Initially, as part of our migration plan, we added a plugin setting in case users want to opt out. As more and more features migrated to v2, the setting was removed to avoid confusion in OpenSearch 1.0.
Problem
Recently we found there is still minor discrepancy in certain case that user will see inconsistent query behavior. This may caused by special index name, field name or statement/functions yet to migrate. For reference, see recent issues labeled
legacy
. To improve customer experience, I think we need to deprecate legacy code as soon as possible.Approach
Fortunately SQL has good test coverage of both unit test and integration test. All integration test runs against both SQL engine v2 and legacy. It is easy to identify the gaps by failing the test directly without fallback.
Known Gaps and Priority
Any gap in fundamental elements should be prioritized:
Query and other statement unsupported in v2 can migrate later:
Issues related:
The text was updated successfully, but these errors were encountered: