db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mamta A. Satoor (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-3166) Update docs to address code improvments to LIKE (see Derby-2967)
Date Wed, 31 Oct 2007 18:41:51 GMT

    [ https://issues.apache.org/jira/browse/DERBY-3166?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12539150
] 

Mamta A. Satoor commented on DERBY-3166:
----------------------------------------

Thanks for working on the documentation part of DERBY-2967. I hope following information will
be useful to you

**********************************************************
The following applies to territory based database
For LIKE, when comparing a pattern against a value string, we do the comparison of collation
elements(s) for one character at a time for non-metacharacters. This is different than what
is done for = operation. For =, we compare the collation elements for the entire string on
left hand with the collation elements of the entire string on the right hand side.
For eg say we are working with a territory where character 'z' has same collation elements
as 'xy'. For such a territory consider 2 clauses in WHERE clause
1)'zcb' = 'xycb' 
2)'zcb' LIKE 'xy_b'
For case 1), we will return TRUE because the collation elements for the entire string 'zcb'
will match the collation elements of the entire string 'xycb'.
For case 2) though, we will return FALSE because collation element(s) for character 'z' does
not match the collation element(s) for character 'x'. So, as can be seen, the LIKE operation
is one character at a time whereas = operation is the entire string at a time. 
In addition,  the metacharacter _ in pattern for LIKE will consume *one* character in the
string value. So for an eg clause 'xycb' LIKE '_cb' will return FALSE because metacharacter
_ will consume 'x' and since 'c' does not match 'y', we will return FALSE.
**********************************************************

**********************************************************
The following applies to UCS_BASIC database
Also, just to be clear, in a UCS_BASIC database, for all of the 3 cases above, we will return
FALSE because the comparison in UCS_BASIC is based on code point. So for test cases 1 and
2, since the code point for 'z' does not match the code point for 'x', we will return FALSE.
And for test case 3, 'x' will be consumed by '_' but the code point for 'y' does not match
the code point for 'c' and hence we will return FALSE.
**********************************************************

Hope this helps with your effort of documenting this.


> Update docs to address code improvments to LIKE (see Derby-2967)
> ----------------------------------------------------------------
>
>                 Key: DERBY-3166
>                 URL: https://issues.apache.org/jira/browse/DERBY-3166
>             Project: Derby
>          Issue Type: Bug
>          Components: Documentation
>            Reporter: Laura Stewart
>            Assignee: Laura Stewart
>
> Implement the required doc changes for collation to address the improvements to the LIKE
operator.

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