You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Knut Anders Hatlen (JIRA)" <ji...@apache.org> on 2013/01/09 13:36:12 UTC
[jira] [Updated] (DERBY-6030) Length of escape string in LIKE ...
ESCAPE not properly checked with territory based collation
[ https://issues.apache.org/jira/browse/DERBY-6030?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Knut Anders Hatlen updated DERBY-6030:
--------------------------------------
Attachment: d6030-1a.diff
The attached patch makes WorkHorseForCollatorDatatypes.like() check the character length of the escape sequence as well as the number of collation elements, and adds a test case to verify the fix.
All of the regression tests passed.
> Length of escape string in LIKE ... ESCAPE not properly checked with territory based collation
> ----------------------------------------------------------------------------------------------
>
> Key: DERBY-6030
> URL: https://issues.apache.org/jira/browse/DERBY-6030
> Project: Derby
> Issue Type: Bug
> Components: SQL
> Affects Versions: 10.9.1.0
> Reporter: Knut Anders Hatlen
> Assignee: Knut Anders Hatlen
> Attachments: d6030-1a.diff
>
>
> When an ESCAPE clause contains multiple characters, but only a single collation element, they are accepted as long as it's not a literal:
> ij> connect 'jdbc:derby:memory:nodb;create=true;territory=no;collation=TERRITORY_BASED';
> ij> create table t(x varchar(20), y varchar(20), z varchar(20));
> 0 rows inserted/updated/deleted
> ij> insert into t values ('abc', 'def', 'aa');
> 1 row inserted/updated/deleted
> ij> select * from t where x like y escape z;
> X |Y |Z
> --------------------------------------------------------------
> 0 rows selected
> If the same query is performed with a literal in the ESCAPE clause, the problem is detected and correctly reported:
> ij> select * from t where x like y escape 'aa';
> ERROR 22019: Invalid escape sequence, 'aa'. The escape string must be exactly one character. It cannot be a null or more than one character.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira