Single character does not match high value unicode character with collation TERRITORY_BASED -------------------------------------------------------------------------------------------
Key: DERBY-2967 URL: https://issues.apache.org/jira/browse/DERBY-2967 Project: Derby Issue Type: Bug Components: SQL Affects Versions: 10.4.0.0 Reporter: Kathey Marsden With TERRITORY_BASED collation '_' does not match the character \uFA2D. It is the same for english or norwegian. FOR collation UCS_BASIC it matches fine. Could you tell me if this is a bug? Here is a program to reproduce. import java.sql.*; public class HighCharacter { public static void main(String args[]) throws Exception { System.out.println("\n Territory no_NO"); Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); Connection conn = DriverManager.getConnection("jdbc:derby:nordb;create=true;territory=no_NO;collation=TERRITORY_BASED"); testLikeWithHighestValidCharacter(conn); conn.close(); System.out.println("\n Territory en_US"); conn = DriverManager.getConnection("jdbc:derby:endb;create=true;territory=en_US;collation=TERRITORY_BASED"); testLikeWithHighestValidCharacter(conn); conn.close(); System.out.println("\n Collation USC_BASIC"); conn = DriverManager.getConnection("jdbc:derby:basicdb;create=true"); testLikeWithHighestValidCharacter(conn); } public static void testLikeWithHighestValidCharacter(Connection conn) throws SQLException { Statement stmt = conn.createStatement(); try { stmt.executeUpdate("drop table t1"); }catch (SQLException se) {// drop failure ok. } stmt.executeUpdate("create table t1(c11 int)"); stmt.executeUpdate("insert into t1 values 1"); // \uFA2D - the highest valid character according to // Character.isDefined() of JDK 1.4; PreparedStatement ps = conn.prepareStatement("select 1 from t1 where '\uFA2D' like ?"); String[] match = { "%", "_", "\uFA2D" }; for (int i = 0; i < match.length; i++) { System.out.println("select 1 from t1 where '\\uFA2D' like " + match[i]); ps.setString(1, match[i]); ResultSet rs = ps.executeQuery(); if( rs.next() && rs.getString(1).equals("1")) System.out.println("PASS"); else System.out.println("FAIL: no match"); rs.close(); } } } Mamta made some comments on this issue in the following thread: http://www.nabble.com/Single-character-does-not-match-high-value-unicode-character-with-collation-TERRITORY_BASED.-Is-this-a-bug-tf4118767.html -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.