-
Notifications
You must be signed in to change notification settings - Fork 32
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
[Bug]: Contains and EndsWith should not be mandatory, but the TCK makes it mandatory. #768
Comments
Did anyone ever give the TCK a way to input which type of database you are using so that it can properly make assertions on where it can expect UnsupportedOperationException vs where it must not be raised? That seems like the first step. Aside from that, it looks to me like
Once the capability is in place, we will need to trap for UnsupportedOperationException in all of these places and consider it a passing result only if Document or Graph. |
@KyleAure we should include this as an issue to fix for the v1.0.1 TCK. |
@njr-11 @otaviojava
Any preference? |
The state of the art, for me, is option 1. But I am OK with option 3 for a while. Can we include the issue between them in this scenario? I would create a special branch to pass only to the TCK, but once it generates a new version, we could also fix it on this 1.0.1 version. P.s.: I still working on the TCK, if the release happen in two or three weeks I can check all the tests and see the ones to NoSQL. |
Option 3 is inaccurate because it assumes UnsupportedOperationException is always valid, but it is only valid for Graph and Document. This would allow other database types to pass the TCK despite violating specification requirements. Option 2 is better because the test can make a correct assertion for UnsupportedOperationException (must be Graph or Document) and a correct assertion for other database types (repository method must succeed). Option 1 is not as good as Option 2 because we lose out on asserting that Graph and Document will either raise UnsupportedOperationException or succeed. |
Thanks for the feedback. I agree that Option 2 is likely the best middle ground. |
There is one issue with this approach: NoSQL databases do not have standards as we have in relational databases. The classic is with keywords; take, for example, MongoDB and Oracle NoSQL, where both are document databases. Oracle NoSQL works to capture the most relational capabilities possible, including the between keywords. On the other hand, MongoDB and ArangoDB do not provide support for the same keyword. |
Not sure I'm understanding exactly what you mean Otavio. Do you mean there's no |
Specification Version
1.0.0
Bug report
By specification:
Ref: https://github.com/jakartaee/data/blob/main/spec/src/main/asciidoc/method-query.asciidoc#27-query-by-method-name-conditions
However, when I ran at the TCK, it shows it as an error:
Additional information
No response
The text was updated successfully, but these errors were encountered: