[ https://issues.apache.org/jira/browse/DERBY-2793?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12510447 ]
Daniel John Debrunner commented on DERBY-2793: ---------------------------------------------- The description for this issue says the collation for LIKE should match the SQL standard. The latest change does not match the SQL standard, thus I don't think it should be closed. I didn't know that those other bugs existed, after reading them I think that the current collation determination is not a sub-set of the SQL standard. That is some comparisions allowed by the current code will not be allowed once collation determination correctly follows 9.13. A sub-set of the SQL standard would seem fine, as a work in progress. That is all comparisions that are allowed by Derby are also allowed by the SQL standard, but Derby may not support comparisions (throws exception at compile time) that the SQL standard supports. But I don't think that's where the code is at the moment. One case is that if the derivation is NONE for all operands of the comparision operator then the current code would seem to allow collation, but 9.13 expects a '42' error to be raised. Allowing a release with this may have backwards compatibility issues, SQL statements that incorrectly worked will fail. Wouldn't it be simple to add a check that at least one of the operands have the derivation IMPLICIT or EXPLICIT (in addition to the existing tests)? I also wonder if fixing the collation determination to be correct (9.13 based) will affect existing applications/databases, those with collation=UCS_BASIC. Will there be some comparisons that will (correctly) not be supported anymore? > Ensure LIKE predicate follows correct rules for determing collation > ------------------------------------------------------------------- > > Key: DERBY-2793 > URL: https://issues.apache.org/jira/browse/DERBY-2793 > Project: Derby > Issue Type: Sub-task > Components: SQL > Reporter: Daniel John Debrunner > Assignee: Mamta A. Satoor > Fix For: 10.3.1.1, 10.4.0.0 > > > The current code in LikeEscapeOperatorNode seems to only check that the > collations are identical. That is not the correct mechanism for determing > collation which is based upon SQL spec Section 9.13 "Collation determination" > or item 12 in the DERBY-1478 wiki page. > http://wiki.apache.org/db-derby/BuiltInLanguageBasedOrderingDERBY-1478 > I think it's also essential that the (somewhat complex) logic to implement > collation determination is in a single method, not repeated multiple times > for each collation. > There is a TODO in LikeEscapeOperatorNode that might be related to this. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.