Details
Description
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
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 =
;
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:
Attachments
Attachments
Issue Links
- is related to
-
DERBY-1478 Add built in language based ordering and like processing to Derby
- Closed
- relates to
-
DERBY-3166 Update docs to address code improvments to LIKE (see Derby-2967)
- Closed