-
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
[FEATURE] PPL Sort with num
, str
, or ip
#3180
Comments
Thanks for the bug report! Where exactly do we explain this syntax in the docs? I see from the Spark PR that there's some documentation examples without explanations, I guess those are vestigial examples that imply it's a leftover grammar quirk. If it's a grammar quirk, I'm mostly concerned with the possibility of a breaking change when people previously used these queries fine (and perhaps expected them to work) after copying the examples. I think the "safe" route is to mark these functions as deprecated no-ops in the documentation/as part of the response for such queries, clean out other doc references to them, and then only remove them from the grammar next major release. |
In line with the above, I think this is more a documentation issue than a bug, since there's a clear workaround for the faulty behavior and the old sort operations haven't been supported for a very long time (or perhaps ever?). I'm not sure there's significant harm in letting the no-ops exist in peace. |
I agree with @Swiddis. I think we can remove it from our documentation safely. Removing them from the grammar might cause a breaking change for customers, we can remove those changes as part of our next major release. |
For clarity, here is a test case that illustrates the bug: Data Dataset:
Query
Expected Output
Actual Output
|
Thanks @anasalkouz and @Swiddis. Agreed, makes more sense to avoid introducing a breaking change. The existing syntax seems to be modelled on Spunk (Splunk sort documentation). If it is desirable to keep this syntax, for ease of use for those familiar with Splunk, we could alternately fix it so that it does work. This would be relatively easily to implement, since these sort field keywords could simply work as a "shorthand" for casting (see below).
Please let me know what you think! |
@Swiddis I don't that this syntax is actually referenced anywhere in the current documentation for the SQL project, which makes it less likely that customers may depend on it/have unwittingly copied it. But I don't know if it may have been part of the documentation in the past, so it's probably best to, as you suggest, wait until the next major release to remove it (if we actually do want to remove it - see my comment above). |
I like the idea of implementing it as a shorthand, I'm willing to mark this as help-wanted from external contributors since it shouldn't be very complex, if we add some links to the relevant code pieces we can also consider marking this as a good first issue. |
@Swiddis Makes sense to me. Some additional thoughts/considerations:
Based on your answers to the above, perhaps it would make sense to tackle this in the following steps:
Let me know what you think! |
I think I'm in favor of the other language changes you proposed (extending the PPL sort syntax, more sort types, and removing One thing I have run into is that using complex sort logic in OpenSearch queries can kill performance, from experience even something as simple as going from sorting by one field -> sorting by two fields (primary and secondary) will slow down queries by ~6x. For large enough indices this will cause query failures, so an implementation of arbitrary sorting expressions should be robust against resource exhaustion. |
num
, str
, or ip
Thanks @Swiddis for the feedback. I've updated the issue above based on our discussion, and switched it from a bug to feature type (since it will be implementing new functionality). You raised some points around performance that I hadn't considered, and which certainly might be a concern. As a result, I decided to keep this issue as simple as possible (i.e. to get sorting with Let me know if you have any further thoughts! |
thanks @currantw |
No, I have not, and wasn't planning to. Just wanted to get the issue to a decent state. Please let me know if/when you would like to start work on this, or if you're happy just keeping it in the backlog. |
Is your feature request related to a problem?
PPL has unimplemented sorting syntax:
While this syntax is currently valid, it has no effect on the resulting sort order - sorting is always performed according to the field's data type.
Based on the discussion below, it seems like this would be a useful feature that would both easier to use, and consistent with sorting in Splunk.
What solution would you like?
num
,str
, andip
keywords.auto
keyword from sorting syntax (consensus seems to be that this isn't particularly useful).What alternatives have you considered?
Variety of alternatives, including deprecating this syntax completely, were discussed below.
Do you have any additional context?
Related to #3145 (Add IP data type) and opensearch-project/opensearch-spark#963 (same issue for Spark). See also comment below.
The text was updated successfully, but these errors were encountered: