Github user rtudoran commented on the issue:
https://github.com/apache/flink/pull/4380
@fhueske
Hi, I saw your remark for "If a query specifies ORDER BY ... FETCH x ROWS
ONLY, then the query must emit exactly x rows (given that the result has at
least x rows) and not x rows for the same sort key"
To some extend we had this discussion before when we started this topic.
Yes - offset/fetch refer to global/absolute values - there must be 5 elements
emitted overall if we have offset 1 and fetch 5. However, as you are saying it
is not particularly useful if we enable this for the stream. Take 5 elements
and then do not emit anything. This was the reason why the conclusion of the
initial discussions on this topic was to have the mandatory orderby time...and
then basically the restrictions of offset/fetch will re-apply for each
timestamp. That was also the reason why we were retracting the previously
emitted results and send the updated results.
Hence if you want to write a sql query over the stream to take the top 5
results based on some sort you would write
Select * from stream1 Order by rowtime, field1 Limit 5
...this would ensure that at moment 1 you get the top 5 results
...then at moment 2 you get an update that these 5 results are not relevant
anymore (as time changed) and you get the top 5 results relevant at that moment.
Please reconsider this. I think this is the behavior that we need (and the
one we discussed that is compatible with SQL semantics ... and also relevant).
Without this and just having a function that selects at some point x results
and then does nothing (or skips y results and then nothing for the rest of the
existence)...i do not see the relevance. While, with this syntax or some
similar syntax...we would still need to support such functionality also via
SQL.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---