db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mamta Satoor" <msat...@gmail.com>
Subject Re: Single character does not match high value unicode character with collation TERRITORY_BASED. Is this a bug
Date Fri, 20 Jul 2007 18:52:31 GMT
Kathey, let me take a look at this.

thanks,
Mamta


On 7/20/07, Kathey Marsden <kmarsdenderby@sbcglobal.net> wrote:
>
> 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.
>
>
> Kathey
>
>
> 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();
>    }
>
> }
> }
>
>
>

Mime
View raw message