db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel John Debrunner (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-2793) Ensure LIKE predicate follows correct rules for determing collation
Date Thu, 05 Jul 2007 18:37:04 GMT

    [ 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.


Mime
View raw message